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

实验说明 汇编实验(格雷码转二进制(ASCII码)的实现和调试)
文章图片
实验说明 格雷码和二进制的转换 汇编实验(格雷码转二进制(ASCII码)的实现和调试)
文章图片
在这里插入图片描述 思路 为完成实验内容,可通过查表和格雷码计算两种方式完成,此处使用格雷码直接计算得出结果。
SHL算术左移命令可将二进制数的高位存入CF,直接得出高位数据,通过异或操作从高位到低位逐位循环8次解出二进制数,最后加上30H即为对应的ASCII码。
汇编代码

DATA SEGMENT GRA DB ? BIN DB ? DATA ENDSCODE 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码)的实现和调试)
文章图片
流程图 调试检验 通过MOV GRA,1101b指令设定格雷码的初值。

汇编实验(格雷码转二进制(ASCII码)的实现和调试)
文章图片
调试过程
通过-u命令查看所需的程序结尾断点的地址 076F:0031 CD21 INT 21
汇编实验(格雷码转二进制(ASCII码)的实现和调试)
文章图片
调试过程
通过-g 0031调试命令直接运行到程序结尾,可以看到BX=0039,对应了1101格雷码的ASCII码,调试验证成功。 【汇编实验(格雷码转二进制(ASCII码)的实现和调试)】

    推荐阅读