Архитектура микропроцессоров и их программирование. Карягин А.П. - 53 стр.

UptoLike

Составители: 

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