编程将寄存器AX中的二进制数转换为ASCII码 结果放在ASCBUF开始的连续5...

发布网友 发布时间:2024-10-23 20:08

我来回答

1个回答

热心网友 时间:2分钟前

;你们老师题目出得不太准确。按所给程序,严格说来,应该是
;把(ax)中的数据,转换为10进制数,各位上的数字以ASCII码值放在ASCBUF中。
dseg segment
  ascbuf db 5 dup(0)
dseg ends

assume cs:cseg, ds:dseg
cseg segment
start:
   mov ax, dseg
   mov ds, ax

   mov ax, 0abcdh  ; 这个数据你自己定
   call bintoasc
 
   mov ah,4ch
   int 21h

  BINTOASC  PROC  NEAR
                   MOV   CX,10
                   LEA    SI,ASCBUF+4
BTOA1:      CMP   AX,10
                   JB       BTOA2
                   XOR   DX,DX
                   DIV     CX
                   OR     DL,30H
                   MOV  [SI],DL
                   DEC   SI
                   JMP   BTOA1
BTOA2:      OR     AL,30H
                   MOV  [SI],AL
                   RET
BINTOASC     ENDP

cseg  ends
    end start
    
----------------------------------------
看来你还没掌握汇编程序的基本结构啊,努力吧,少年。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com