读书人

一个汇编的小疑点

发布时间: 2012-03-13 11:21:11 作者: rapoo

一个汇编的小问题
已知段基址为4000H的数据段中,从偏移地址0200H开始存放了数字0~9的七段数码管显示代码表。请编程取出数字6的七段代码存入DL中。
MOV AX, 4000H //为何不直接送到DS中去呢?
MOV DS, AX
MOV BX, 0200H
MOV AL, 6
XLAT
MOV DL, AL //我觉得XLAT的作用就象是脱裤放屁一样,把一个简单的事情搞得这么复杂。
小弟刚学汇编,问题可能很幼稚,还请见谅。

[解决办法]
MOV AX, 4000H //为何不直接送到DS中去呢?:不能直接将立即数传入DS
MOV DS, AX
MOV BX, 0200H
MOV AL, 6
XLAT
MOV DL, AL //我觉得XLAT的作用就象是脱裤放屁一样,把一个简单的事情搞得这么复杂
不是多余的,XLAT将数组中下标为6的元素送入AL,,,,
[解决办法]
因为处理器只能识别ax,bx,cx,dx四个寄存器,32位多又多两个。
ds这类的寄存器不能有处理器直接处理。
所以要转一下。
建议先了解一下硬件,再回来理解汇编。

读书人网 >C语言

热点推荐