Программирование обработки, преобразования и ввода-вывода данных на ассемблере ПЭВМ. Домнин Л.Н. - 28 стр.

UptoLike

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

27
public func
cseg segment para public 'code' ;---------------------;
func proc far ; с ;
push ax ; Сохранение ; ;
push dx ; содержимого ; е ;
push si ; рабочих регисров ; ;
mov si,[bx] ; Выборка ; г ;
mov ax,[si] ; значений ; ;
Продолжение прил.
mov si,[bx+2] ; параметров ; м ;
add ax,[si] ; и ; ;
mov si,[bx+4] ; выполнение ; е ;
imul word ptr [si] ; вычислений ; ;
mov si,[bx+6] ; ax:=(a+b)*c/d ; н ;
idiv word ptr [si] ; ; ;
mov si,[bx+8] ; Передача результата в ; т ;
mov [si],ax ; в вызывающую процедуру ; ;
pop si ; Восстановление ; ;
pop dx ; содержимого рабочих ; к ;
pop ax ; регисров ; о ;
ret ; Возврат в вызывающую процедуру ; д ;
func endp ; а ;
cseg ends ;-------------------------------------------;
end
Подпрограмма binasc
Обеспечивает преобразование числа из двоичного дополни-
тельного кода в формате слова в строку ASCII-кодов с форматом
ЗнЦЦЦ. Перед запуском
binasc переводимое двоичное число, а
также адрес начала формируемой строки ASCII-кодов должны быть
помещены в стек.
Используемые регистры:
ax,cx,dx,di.
extrn des:word
public binasc
;-----------------------------------------------------------;
cseg segment para public 'code' ; с ;
binasc proc far ; ;
       public    func
cseg   segment   para public   'code'  ;---------------------;
func   proc      far                                   ; с ;
       push      ax        ;   Сохранение              ;     ;
       push      dx        ;   содержимого             ; е ;
       push      si        ;   рабочих регисров        ;     ;
       mov       si,[bx]         ; Выборка             ; г ;
       mov       ax,[si]         ; значений            ;     ;

                                                Продолжение прил.

       mov       si,[bx+2]       ; параметров          ; м ;
       add       ax,[si]         ;      и              ;     ;
       mov       si,[bx+4]       ; выполнение          ; е ;
       imul      word ptr [si]   ; вычислений          ;     ;
       mov       si,[bx+6]       ; ax:=(a+b)*c/d       ; н ;
       idiv      word ptr [si]   ;                     ;     ;
       mov       si,[bx+8]   ; Передача результата в   ; т ;
       mov       [si],ax     ; в вызывающую процедуру  ;     ;
       pop       si          ; Восстановление          ;     ;
       pop       dx          ; содержимого рабочих     ; к ;
       pop       ax          ; регисров                ; о ;
       ret           ; Возврат в вызывающую процедуру  ; д ;
func   endp                                            ; а ;
cseg   ends      ;-------------------------------------------;
       end

                    Подпрограмма binasc
   Обеспечивает преобразование числа из двоичного дополни-
тельного кода в формате слова в строку ASCII-кодов с форматом
ЗнЦЦЦ. Перед запуском binasc переводимое двоичное число, а
также адрес начала формируемой строки ASCII-кодов должны быть
помещены в стек.
Используемые регистры: ax,cx,dx,di.
        extrn   des:word
        public binasc
;-----------------------------------------------------------;
cseg    segment para    public   'code'               ; с ;
binasc proc     far                                   ;     ;

                               27