sy33.asm

来自「用汇编语言实现除法功能」· 汇编 代码 · 共 49 行

ASM
49
字号
        DATA  SEGMENT

      STRING  DB        '000C'
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              CALL      CHANGE
              CALL      LIST
              MOV       AH,4CH
              INT       21H
      CHANGE  PROC
              LEA       SI, STRING
              MOV       DI,10H
              MOV       AX,0
              MOV       CL,4
       NEXT:  MOV       BL,[SI]
              SUB       BL,30H      ;将ASCII码转换为对应数的二进制形式
              CMP       BL,11H
              JB        NEXT1
              SUB       BL,07H
      NEXT1:  MUL       DI          ; 将十六进制数转换为对应的二进制数
              MOV       BH,0
              ADD       AX,BX
              INC       SI
              LOOP      NEXT
              RET
      CHANGE  ENDP
        LIST  PROC
              MOV       CL,0
              MOV       CH,0
              MOV       DI,10
      NEXT2:  MOV       DX,0
              DIV       DI          ;将二进制数除以十后,将其商继续除以十,直到商为零
              PUSH      DX          ;将每次的余数存入堆栈
              INC       CL
              CMP       AX,0
              JNZ       NEXT2
      NEXT3:  POP       DX          ;将每次的余数弹出堆栈
              ADD       DX,30H      ;显示十进制数
              MOV       AH,2H
              INT       21H
              LOOP      NEXT3
              RET
        LIST  ENDP
        CODE  ENDS
              END       START

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?