汇编实验:格雷码转二进制(ASCII码)的实现和调试

实验说明

汇编实验:格雷码转二进制(ASCII码)的实现和调试_第1张图片
实验说明

格雷码和二进制的转换

汇编实验:格雷码转二进制(ASCII码)的实现和调试_第2张图片
在这里插入图片描述

思路

为完成实验内容,可通过查表和格雷码计算两种方式完成,此处使用格雷码直接计算得出结果。
SHL算术左移命令可将二进制数的高位存入CF,直接得出高位数据,通过异或操作从高位到低位逐位循环8次解出二进制数,最后加上30H即为对应的ASCII码。

汇编代码

DATA SEGMENT
GRA DB ?
BIN DB ?
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV GRA,1101b
        MOV BIN,0
        MOV BL,00h          ;record bin
        MOV DL,00h          ;record last gray bit
        MOV CX,8
        MOV AL,GRA
A1:
        SHL BL,1
        SHL AL,1
        MOV DH,0
        ADC DH,0            ;assgin DH = CF 
        XOR DL,DH
        ADD BL,DL
        LOOP A1
        ADD BL,30h
        MOV BIN,BL
        MOV AH,0
        INT 21h
CODE ENDS
END START

流程图

汇编实验:格雷码转二进制(ASCII码)的实现和调试_第3张图片
流程图

调试检验

通过MOV GRA,1101b指令设定格雷码的初值。

汇编实验:格雷码转二进制(ASCII码)的实现和调试_第4张图片
调试过程

通过-u命令查看所需的程序结尾断点的地址 076F:0031 CD21 INT 21
汇编实验:格雷码转二进制(ASCII码)的实现和调试_第5张图片
调试过程

通过-g 0031调试命令直接运行到程序结尾,可以看到BX=0039,对应了1101格雷码的ASCII码,调试验证成功。

你可能感兴趣的:(汇编实验:格雷码转二进制(ASCII码)的实现和调试)