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

UptoLike

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

28
assume cs:cseg ; ;
public binasc ; е ;
push bp ; ; ;
mov bp,sp ; Сохранение ; ;
push ax ; содержимого ; г ;
push cx ; рабочих ; ;
push dx ; регистров ; ;
push di ; ; м ;
mov ax,[bp+6] ; Переводимое число -> ax ; ;
Продолжение прил.
mov di,[bp+8] ; Адрес результата -> di ; е ;
mov byte ptr[di],'+' ; Формирование ; ;
cmp ax,0 ; знака ; ;
jge poz ; в символьном ; н ;
mov byte ptr[di],'-' ; представлении ; ;
neg ax ; числа ; ;
poz: ; т ;
mov dx,0 ; ;
add di,4 ; ;
mov cx,4 ; ;
povt2: ; ;
div des ; Формирование ; ;
or dx,030h ; кода очередной ; ;
mov [di],dl ; цифры перево- ; ;
mov dx,0 ; димого числа ; к ;
dec di ; Переход к сле- ; ;
loop povt2 ; дующей цифре ; ;
; ; о ;
pop di ; Восстановление ; ;
pop dx ; содержимого ; ;
pop cx ; рабочих ; д ;
pop ax ; регистров ; ;
pop bp ; ; ;
ret 4 ; Возврат в вызывающую процедуру ; а ;
binasc endp ; ;
cseg ends ;------------------------------------------ ;
end
Библиотека макроопределений
         assume   cs:cseg                               ;       ;
         public   binasc                                ;   е   ;
         push     bp                     ;              ;       ;
         mov      bp,sp                  ; Сохранение   ;       ;
         push     ax                     ; содержимого ;    г   ;
         push     cx                     ; рабочих      ;       ;
         push     dx                     ; регистров    ;       ;
         push     di                     ;              ;   м   ;
         mov      ax,[bp+6]   ; Переводимое число -> ax ;       ;


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

         mov      di,[bp+8]   ; Адрес результата -> di ; е      ;
         mov      byte ptr[di],'+' ; Формирование       ;       ;
         cmp      ax,0             ; знака              ;       ;
         jge      poz              ; в символьном       ; н     ;
         mov      byte ptr[di],'-' ; представлении      ;       ;
         neg      ax               ; числа              ;       ;
poz:                                                    ; т     ;
         mov      dx,0                                  ;       ;
         add      di,4                                  ;       ;
         mov      cx,4                                  ;       ;
povt2:                                                  ;       ;
         div      des                ; Формирование     ;       ;
         or       dx,030h            ; кода очередной   ;       ;
         mov      [di],dl            ; цифры перево-    ;       ;
         mov      dx,0               ; димого числа     ; к     ;
         dec      di                 ; Переход к сле-   ;       ;
         loop     povt2              ; дующей цифре     ;       ;
;                                                       ; о     ;
         pop      di           ; Восстановление         ;       ;
         pop      dx           ; содержимого            ;       ;
         pop      cx           ; рабочих                ; д     ;
         pop      ax           ; регистров              ;       ;
         pop      bp           ;                        ;       ;
         ret      4   ; Возврат в вызывающую процедуру ; а      ;
binasc   endp                                           ;       ;
cseg     ends     ;------------------------------------------   ;
         end

                  Библиотека макроопределений
                                 28