首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个汇编的小疑点

2012-03-13 
一个汇编的小问题已知段基址为4000H的数据段中,从偏移地址0200H开始存放了数字0~9的七段数码管显示代码表。

一个汇编的小问题
已知段基址为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这类的寄存器不能有处理器直接处理。
所以要转一下。
建议先了解一下硬件,再回来理解汇编。

热点排行