BriMdsGalaMoon 发表于 2022-8-22 14:25:02

这个代码转换实验是如何获取到输入数的十位的

一本汇编实验指导书上面的案例,题目是这样的:

代码转换实验:
从键盘输入2 个十进制数组合成压缩BCD 码存入DL,再将压缩BCD 码转换成ASCII 码送显示器显示。

示例代码是这样的:

CODE SEGMENT
ASSUME CS:CODE
start:
        MOV AH, 01H                                ;如果AL=89H
        INT 21H
        MOV CL, 4                                
        SHL AL, CL                                 ;AL=90H
        MOV DL, AL                                 ;DL=90H

        MOV AH, 01H                                 ;AL=89H
        INT 21H
        AND AL, 0FH                                ;AL=09H
        OR DL, AL                                         ;DL=99H
        MOV BL, DL                                ;BL=99H
        SHR DL, CL                                 ;DL=09H
        OR DL, 30H                                 ;DL=39H
        MOV AH, 02H                               
        INT 21H
        MOV DL, BL                                 ;DL=99H
        AND DL, 0FH                                 ;DL=09H
        OR DL, 30H                                 ;DL=39H
        MOV AH, 02H                               
        INT 21H

        MOV AH, 4CH
        INT 21H
CODE ENDS
END start

上面代码中的注释部分是我自己假设了一个数89H进行的推算,我推算的结果是它会得到两个39H从而显示两次个位数9,十位数8似乎无法显示出,因为没有得到38H

所以想问一下我的注释推理过程有什么地方出现了什么问题吗
页: [1]
查看完整版本: 这个代码转换实验是如何获取到输入数的十位的