ВУЗ:
Составители:
53
mov al,03
int 10h
. ; восстановление из стека
. ; сохранённых регистров
mov ax,4C00h ; выход в DOS
int 21h
ret
begin endp
codesg ends
end begin
5.3.3 Напишите программу ввода-вывода вашего имени, используя при-
меры 5.1, 5.2, 5.3.
Пример 5.3 - Фрагмент программы ввода-вывода символьной строки:
:
datasg segment para 'data'
namepar label byte ;имя списка параметров,
maxlen db 20 ;макс. длина имени,
namelen db ?
namefld db 20 dup(' '),'$' ;имя
prompt db 'name?','$'
datasg ends
;-------------------------------------------------------
codesg segment para 'code'
begin proc far
assume cs:codesg,ds:datasg,ss:stacksg
push ds
sub ax,ax
push ax
mov ax,datasg
mov ds,ax
mov es,ax
call q10clr ; вызов процедуры очиститки экрана (пример 5.2)
a20: mov dx,0000
call q20curs ; вызов процедуры установки курсора (пример 5.1)
call b10prmp
call d10inpt
call q10clr
cmp namelen,00
je a30
call e10code
call f10cent
jmp a20
a30: ret
;----------------------------------------------
b10prmp proc near ; вывод текста запроса
mov al,03 int 10h . ; восстановление из стека . ; сохранённых регистров mov ax,4C00h ; выход в DOS int 21h ret begin endp codesg ends end begin 5.3.3 Напишите программу ввода-вывода вашего имени, используя при- меры 5.1, 5.2, 5.3. Пример 5.3 - Фрагмент программы ввода-вывода символьной строки: : datasg segment para 'data' namepar label byte ;имя списка параметров, maxlen db 20 ;макс. длина имени, namelen db ? namefld db 20 dup(' '),'$' ;имя prompt db 'name?','$' datasg ends ;------------------------------------------------------- codesg segment para 'code' begin proc far assume cs:codesg,ds:datasg,ss:stacksg push ds sub ax,ax push ax mov ax,datasg mov ds,ax mov es,ax call q10clr ; вызов процедуры очиститки экрана (пример 5.2) a20: mov dx,0000 call q20curs ; вызов процедуры установки курсора (пример 5.1) call b10prmp call d10inpt call q10clr cmp namelen,00 je a30 call e10code call f10cent jmp a20 a30: ret ;---------------------------------------------- b10prmp proc near ; вывод текста запроса 53