Программирование на Ассемблере


           

Пример 2. Составить функцию gets


push     str1
push     0
call      MessageBoxA
endm
Файл для проверки макроса
Ideal
p586
model   flat
extrn ExitProcess:proc
extrn MessageBoxA:proc
include "win.inc"
dataseg
t   db      'Information', 0
text    db      'Hello, world!', 0
codeseg
begin:
ShowMessage <offset text>, <offset t>, 0
call    ExitProcess
end     begin
 
Пример 2. Составить функцию gets для ввода строки с клавиатуры, которая в результате формирует строку с нулевым завершителем. Признак конца вводимой строки- символ <Enter>.
ideal
p586
model  flat
include "win.inc"
extrn   GetStdHandle:proc
extrn   ReadConsoleA: proc
codeseg
proc     gets
public  gets
arg       mystr:dword
local    s:dword=r
push     ebp     
mov     ebp, esp
sub       esp, r
push    ebx ecx
push     STD_INPUT_HANDLE
call      GetStdHandle; ebp-0; eip-4; ;&str-8
mov     ebx, [ebp+8]
push     0
lea       ecx, [ebp-4]
push     ecx    
push     80 ebx eax
call      ReadConsoleA
sub       [s], 2
add      ebx, [s]
mov     [byte ptr ebx], 0
mov     eax, [ebp+8]
pop     ecx ebx
mov     esp, ebp
pop      ebp
ret        4
endp
end
Главная программа для проверки функции ввода строки имеет вид:
ideal
p386
model   flat
extrn ExitProcess:proc
extrn GetStdHandle:proc
extrn ReadConsoleA:proc
extrn WriteConsoleA:proc
extrn    gets:proc
dataseg
include "win.inc"
din       dd        0
dout     dd        0
buf       db        80 dup (?)
siz        dd        ?
mystr   db        'Input string, please', 13, 10, 0
codeseg
begin:
push     STD_INPUT_HANDLE
call      GetStdHandle
mov     [din], eax
push     STD_OUTPUT_HANDLE
call      GetStdHandle
mov     [dout], eax
push     0 offset siz  22 offset mystr [dout]
call      WriteConsoleA
push     offset buf
call      gets
call ExitProcess
end begin
Пример 3. Составить функцию для вывода строки с нулевым завершителем на стандартное устройство

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий