или сразу в клуб [высокооплачиваемых] телепатов...
» Assembler
Volk870707
Цитата:
Тут явно пропущено самое главное - само условие задачи.
Цитата:
DMA - контроллер, как микросхема. Его назначение. Производительность ПК....
Тут явно пропущено самое главное - само условие задачи.
а по-моему, условие приведено в самом низу, вплоть до желания получить от нас
Цитата:
Цитата:
графического приложения в виде схемотехнического и конструкторско-технологического материала
akaGM
Это скорее рамки выполнения задания.
А самого задания я там не вижу.
Ну разве что DMA - не то, что мы тут все подумали, а какая-то другая вполнеконкретная хрень...
Это скорее рамки выполнения задания.
А самого задания я там не вижу.
Ну разве что DMA - не то, что мы тут все подумали, а какая-то другая вполнеконкретная хрень...
И вы так спокойно об этом рассуждаете? Пришёл халявщик, не говоря ни слова, швырнул листок с заданием вам на стол, удобно устроился в кресле, закинув ногу за ногу, и затягиваясь пивком, слушает ваши речи. Не дай бог ещё кто-то ему поможет - возьмёт решение, по-английски уйдёт, спокойненько сдаст преподу и потащится в клуб к тёлкам рассказывать, какой он крутой IT-шник будет, когда диплом получит.
P.S. Ненавижу. Хай идёт учиться сапоги чистить и лопатой махать, всё больше пользы реальным студентам, народу и партии. Бо обезьяны с корками достали уже Россию перед Европой позорить.
P.S. Ненавижу. Хай идёт учиться сапоги чистить и лопатой махать, всё больше пользы реальным студентам, народу и партии. Бо обезьяны с корками достали уже Россию перед Европой позорить.
Qraizer
Вы меня тут все смущаете - ну нету там условия задачи в принципе - и поэтому никто ему не поможет!
А у меня лично сложилось впечатление, что мы тут дружно стебёмся (мизерную надежду, что написанное нами сподвигнет на выдачу нормальной формулировки, я бы в расчёт принимать не стал).
А люди, помогающие подобным халявщикам, почему-то таки изредка появляются - вон в теме по маплу уже несколько задач одной халявщице нарешали (причём она в начале даже по-русски не соизволила писать). И такое ощущение, что просто сидели и ждали, ну когда же придёт он - великий халявщик:
Цитата:
Цитата:
Можно попытаться выяснить ответ на этот вопрос, заведя тему Почему вы помогаете халявщикам?
Только вот боюсь зафлудят.
Вы меня тут все смущаете - ну нету там условия задачи в принципе - и поэтому никто ему не поможет!
А у меня лично сложилось впечатление, что мы тут дружно стебёмся (мизерную надежду, что написанное нами сподвигнет на выдачу нормальной формулировки, я бы в расчёт принимать не стал).
А люди, помогающие подобным халявщикам, почему-то таки изредка появляются - вон в теме по маплу уже несколько задач одной халявщице нарешали (причём она в начале даже по-русски не соизволила писать). И такое ощущение, что просто сидели и ждали, ну когда же придёт он - великий халявщик:
Цитата:
На сегодня все, устал
Цитата:
Всегда готов помочь
Можно попытаться выяснить ответ на этот вопрос, заведя тему Почему вы помогаете халявщикам?
Только вот боюсь зафлудят.
Цитата:
вон в теме по маплу уже несколько задач одной халявщице нарешали
я здесь уже неоднократно разоблачал таких "девушек"...
для таких халявщиков главное с окончанием глаголов не напутать...
Цитата:
заведя тему... Только вот боюсь зафлудят.
у нас и так есть своя флудильня...
Та достаточно не давать готовых решений халявщикам, а подсказки/материал для размышлений/сырые заготовки. Понимающему достаточно, а халявщику не подойдёт. Аминь.
может ветку под x64 отдельно выделить?
а что, тут кто то озадачился проблемой х64? как было 100 лет назад на тасме, так и пишут там же, под ДОС... а те кто пишет под х64 на асме - сюда не ходят...
Цитата:
а те кто пишет под х64 на асме - сюда не ходят...
И куда они ходят?
Никуда они не ходят. Они сами по себе достаточно сообразительны, чтобы ходить и задавать глупые вопросы
Цитата:
Никуда они не ходят. Они сами по себе достаточно сообразительны, чтобы ходить и задавать глупые вопросы
Ну почему же. При любом уровне сообразительности и профессионализма всегда есть вопросы для обсуждения )
ItsJustMe
Цитата:
Например, какие?
Цитата:
Они сами по себе достаточно сообразительны, чтобы ходить и задавать глупые вопросы
Например, какие?
Откуда ж я знаю? Тут пока ни один не появлялся, поэтому и никаких вопросов задано не было. Отсюда, собственно, и мой вывод
Вот когда появится кто-то и вопрос задаст (причем, глупый), вот тогда я и смогу ответить на ваш вопрос.
Вот когда появится кто-то и вопрос задаст (причем, глупый), вот тогда я и смогу ответить на ваш вопрос.
Господа, в 32-битном TASM использовать прерывания нельзя, верно? Как же тогда вводить и выводить информацию? Неужели только через WinAPI? И еще, следующую программу
Код: .486
.model flat
includelib ..\Lib\imp32i.lib
extrn ExitProcess:PROC
extrn MessageBoxA:PROC
.data
Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World',0h
.code
start:
push 0h
push offset Msg
push offset Ttl
push 0h
call MessageBoxA
push 0h
call ExitProcess
end start
Код: .486
.model flat
includelib ..\Lib\imp32i.lib
extrn ExitProcess:PROC
extrn MessageBoxA:PROC
.data
Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World',0h
.code
start:
push 0h
push offset Msg
push offset Ttl
push 0h
call MessageBoxA
push 0h
call ExitProcess
end start
G36
Вы консольное приложение, или оконное хотите?
На _wasm.ru не заходили ещё?
Вы консольное приложение, или оконное хотите?
На _wasm.ru не заходили ещё?
rrromano
Консольное, на wasmе был не раз, проблему свою гуглил целый вечер, но Turbo Debugger упорно не видит символьную таблицу, при компиляции с вышеуказанными ключами никаких tds-файлов не создается, а должны бы.
Tasm32 версии 5.3, TD32 версии 5.5.
Консольное, на wasmе был не раз, проблему свою гуглил целый вечер, но Turbo Debugger упорно не видит символьную таблицу, при компиляции с вышеуказанными ключами никаких tds-файлов не создается, а должны бы.
Tasm32 версии 5.3, TD32 версии 5.5.
G36
Код: .386P
; плоская модель
.MODEL FLAT, stdcall
; константы
STD_OUTPUT_HANDLE equ -11
; прототипы внешних процедур
EXTERN GetStdHandle:NEAR
EXTERN WriteConsoleA:NEAR
EXTERN ExitProcess:NEAR
; директивы компоновщику для подключения библиотек
includelib c:\tasm32\lib\import32.lib
;------------------------------------------------------------
; сегмент данных
_DATA SEGMENT DWORD PUBLIC USE32 'DATA'
; строка в DOS-овской кодировке
STR1 DB "Консольное приложение",0
LENS DD ?
; количество выведенных символов
RES DD ?
_DATA ENDS
; сегмент кода
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'
START:
; получить HANDLE вывода
PUSH STD_OUTPUT_HANDLE
CALL GetStdHandle
; длина строки
PUSH OFFSET STR1
CALL LENSTR
; вывести строку
PUSH OFFSET RES ; резерв
PUSH OFFSET LENS ; выведено символов
PUSH EBX ; длина строки
PUSH OFFSET STR1 ; адрес строки
PUSH EAX ; HANDLE вывода
CALL WriteConsoleA
PUSH 0
CALL ExitProcess
; строка - [EBP+08H]
; длина в EBX
LENSTR PROC
PUSH EBP
MOV EBP,ESP
PUSH EAX
; ----------
CLD
MOV EDI, DWORD PTR [EBP+08H]
MOV EBX,EDI
MOV ECX,100 ; ограничить длину строки
XOR AL,AL
REPNE SCASB ; найти символ 0
SUB EDI, EBX ; длина строки, включая 0
MOV EBX,EDI
DEC EBX
; ----------
POP EAX
POP EBP
RET 4
LENSTR ENDP
_TEXT ENDS
END START
Код: .386P
; плоская модель
.MODEL FLAT, stdcall
; константы
STD_OUTPUT_HANDLE equ -11
; прототипы внешних процедур
EXTERN GetStdHandle:NEAR
EXTERN WriteConsoleA:NEAR
EXTERN ExitProcess:NEAR
; директивы компоновщику для подключения библиотек
includelib c:\tasm32\lib\import32.lib
;------------------------------------------------------------
; сегмент данных
_DATA SEGMENT DWORD PUBLIC USE32 'DATA'
; строка в DOS-овской кодировке
STR1 DB "Консольное приложение",0
LENS DD ?
; количество выведенных символов
RES DD ?
_DATA ENDS
; сегмент кода
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'
START:
; получить HANDLE вывода
PUSH STD_OUTPUT_HANDLE
CALL GetStdHandle
; длина строки
PUSH OFFSET STR1
CALL LENSTR
; вывести строку
PUSH OFFSET RES ; резерв
PUSH OFFSET LENS ; выведено символов
PUSH EBX ; длина строки
PUSH OFFSET STR1 ; адрес строки
PUSH EAX ; HANDLE вывода
CALL WriteConsoleA
PUSH 0
CALL ExitProcess
; строка - [EBP+08H]
; длина в EBX
LENSTR PROC
PUSH EBP
MOV EBP,ESP
PUSH EAX
; ----------
CLD
MOV EDI, DWORD PTR [EBP+08H]
MOV EBX,EDI
MOV ECX,100 ; ограничить длину строки
XOR AL,AL
REPNE SCASB ; найти символ 0
SUB EDI, EBX ; длина строки, включая 0
MOV EBX,EDI
DEC EBX
; ----------
POP EAX
POP EBP
RET 4
LENSTR ENDP
_TEXT ENDS
END START
G36
[more=код]
.386
.model flat,STDCALL
includelib import32.lib
STD_OUTPUT_HANDLE equ -11
; Define the external functions we will be linking to
extrn _wsprintfA:PROC
extrn GetStdHandle:PROC
extrn WriteConsoleA:PROC
extrn ExitProcess:PROC
.data
stdhnd dd 0
resrvd dd 0
outlen dd 0
buffer db 1024 dup (0)
wsplen dd 0
msgstr db 'My first Win32 console assembler application!',13,10,0
msgstr_l equ ($-offset msgstr)-1
fmtstr db 'It is just print this number: %d and exit.',13,10,0
fmtstr_l equ ($-offset fmtstr)-1
number dd 20111019
.code
;-----------------------------------------------------------------------------
;
; This is where control is received from the loader.
;
start:
push STD_OUTPUT_HANDLE
CALL GetStdHandle
mov stdhnd, eax
push offset resrvd
push offset outlen
push offset msgstr_l
push offset msgstr
push stdhnd
call WriteConsoleA
push number
push offset fmtstr
push offset buffer
call _wsprintfA
add esp, 3*4 ; push * sizeof DWORD
mov wsplen, eax
push offset resrvd
push offset outlen
push wsplen
push offset buffer
push stdhnd
call WriteConsoleA
push 0
call ExitProcess
ends
end start
[/more]
[more=батник]
del /y test.exe test.map test.obj
tasm32 /ml /zi test.asm
tlink32 /ap /m /s /v test.obj
td32 test.exe
[/more]
[more=код]
.386
.model flat,STDCALL
includelib import32.lib
STD_OUTPUT_HANDLE equ -11
; Define the external functions we will be linking to
extrn _wsprintfA:PROC
extrn GetStdHandle:PROC
extrn WriteConsoleA:PROC
extrn ExitProcess:PROC
.data
stdhnd dd 0
resrvd dd 0
outlen dd 0
buffer db 1024 dup (0)
wsplen dd 0
msgstr db 'My first Win32 console assembler application!',13,10,0
msgstr_l equ ($-offset msgstr)-1
fmtstr db 'It is just print this number: %d and exit.',13,10,0
fmtstr_l equ ($-offset fmtstr)-1
number dd 20111019
.code
;-----------------------------------------------------------------------------
;
; This is where control is received from the loader.
;
start:
push STD_OUTPUT_HANDLE
CALL GetStdHandle
mov stdhnd, eax
push offset resrvd
push offset outlen
push offset msgstr_l
push offset msgstr
push stdhnd
call WriteConsoleA
push number
push offset fmtstr
push offset buffer
call _wsprintfA
add esp, 3*4 ; push * sizeof DWORD
mov wsplen, eax
push offset resrvd
push offset outlen
push wsplen
push offset buffer
push stdhnd
call WriteConsoleA
push 0
call ExitProcess
ends
end start
[/more]
[more=батник]
del /y test.exe test.map test.obj
tasm32 /ml /zi test.asm
tlink32 /ap /m /s /v test.obj
td32 test.exe
[/more]
MERCURY127
Тоже вариант, но для новичка сложнее в понимании, как мне кажется ).
Тоже вариант, но для новичка сложнее в понимании, как мне кажется ).
Еще можно было бы lstrlen задействовать но мне тоже показалось, что будет перебор. Однако мне кажется, он не совсем новичок, а в винде вывод в консоль не сложнее, чем в дос. Еще с версии 2.0 это там есть, вроде. И х64 тоже умеет это. А еще в масме можно msvcrt.lib подключить.
rrromano
По-прежнему переработанные машинные инструкции вместо исходного кода.
MERCURY127
Отлично работает, спасибо!
Опытным путем выяснилось, что в коде должен быть объявлен массив buffer размером хотя бы 512 байт, но не совсем понятно, как программа будет его использовать (вместо стека что ли?).
По-прежнему переработанные машинные инструкции вместо исходного кода.
MERCURY127
Отлично работает, спасибо!
Опытным путем выяснилось, что в коде должен быть объявлен массив buffer размером хотя бы 512 байт, но не совсем понятно, как программа будет его использовать (вместо стека что ли?).
Значит, все таки новичок буфер этот должен быть минимум 1024 или по некоторым данным даже не менее 2050 байт. В него пишет вывод функция вспринтф, использованная для печати числа - аналог принтф в си. Если форматированный вывод не нужен - не используйте ее, и буфер не нужен будет.
Добавлено:
И вообще, если уж начали писать для винды - не занимайтесь телепатией, а читайте МСДН/ПСДК/ВДК/ВРК документацию...
Добавлено:
И вообще, если уж начали писать для винды - не занимайтесь телепатией, а читайте МСДН/ПСДК/ВДК/ВРК документацию...
а тасм разве умеет .686 и .ммх???
а, таки умеет ... 5.3 уже есть ну так в чем проблема то? все как надо:
[more=картинка] [/more]
Добавлено:
а... если буфер убрать... хмм, тогда да, не распознает как дебагинфо... думаю что глюк отладчика странно ждать чудес от трупа...
[more=картинка] [/more]
Добавлено:
а... если буфер убрать... хмм, тогда да, не распознает как дебагинфо... думаю что глюк отладчика странно ждать чудес от трупа...
Цитата:
странно ждать чудес от трупа
А что есть такое же удобное для отладки в наше время? Даже OllyDbg не умеет отображать исходники.
windbg, softice
Добавлено:
нашел проблему минимальный размер секции данных (те всех db dw dd dq) для норм отладки должен быть более 512 байт
Добавлено:
вот такие пироги...
Добавлено:
нашел проблему минимальный размер секции данных (те всех db dw dd dq) для норм отладки должен быть более 512 байт
Добавлено:
вот такие пироги...
как правильно переопределить все диски, ни фига из описания не ясно. что в DL
запихать?
80h означает что только первый диск сбросится или все жесткие диски?
а 80h+1000000B=С0h означает что все диски сбросятся и жесткие и мягкие или по другому надо?
то есть это все таки номер дисковода или происходит сброс контроллера и соответсвенно всех жестких-мягких дисков?
Добавлено:
DL -номер дисковода - может кулаков погорячился?
Цитата:
mov dl, 80h
mov ah, 0
int 13h
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
Предыдущая тема: .NET GUI компоненты
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.