汇编实验:格雷码转二进制(ASCII码)的实现和调试
2019-10-06 本文已影响0人
魔娃
实验说明
实验说明格雷码和二进制的转换
在这里插入图片描述思路
为完成实验内容,可通过查表和格雷码计算两种方式完成,此处使用格雷码直接计算得出结果。
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
流程图
流程图调试检验
通过MOV GRA,1101b
指令设定格雷码的初值。
通过
-u
命令查看所需的程序结尾断点的地址 076F:0031 CD21 INT 21
调试过程
通过
-g 0031
调试命令直接运行到程序结尾,可以看到BX=0039
,对应了1101格雷码的ASCII码,调试验证成功。