汇编语言将缓冲区中存放的一个五位十进制数12345的ASCII码转换成二进制数,并将转换结果按16

汇编语言将缓冲区中存放的一个五位十进制数12345的ASCII码转换成二进制数,并将转换结果按16进制的形式显示在屏幕上,微机原理操作题求大神解答

80x86 汇编语言如下:

ASSUME  CS:CODE, DS:DATA
;----------------------------------
DATA   SEGMENT
    X1   DB  '1', '2', '3', '4', '5'
    X2   DW  10000, 1000, 100, 10, 1
    XN   DW  0
DATA   ENDS
;----------------------------------
CODE   SEGMENT

START:
    MOV   AX, DATA
    MOV   DS, AX
    
    MOV   BX, 0
    MOV   SI, 0
    MOV   CX, 5
M_LP:
    MOV   AL, X1[BX]
    SUB   AL, '0'
    MOV   AH, 0
    MUL   X2[SI]
    ADD   XN, AX
    INC   BX
    INC   SI
    INC   SI
    LOOP  M_LP
    
    MOV   AX, XN

    MOV   CX, 4
O1: MOV   DX, 0
    MOV   BX, 16
    DIV   BX
    CMP   DL, 10
    JB    O2
    ADD   DL, 7
O2: ADD   DL, 30H
    PUSH  DX
    LOOP  O1
    
    MOV   AH, 2
    MOV   CX, 4
O3: POP   DX
    INT   21H
    LOOP  O3
    MOV   DL, 'H'
    INT   21H

    MOV   AH, 4CH
    INT   21H
;----------------------------------
CODE   ENDS
    END  START

执行后,显示:

3039H

温馨提示:答案为网友推荐,仅供参考
相似回答