总线接口单元由4个16位段寄存器(CS,DS,SS,ES),迅岁1个16位的指令指针寄存器,1个与EU通信的内部暂存器,1个指令队列,1个计算20位物理地址的加法器∑及总线控制电路构成。
程序装载到内存中后通过16位数据线确定各个段地址,开始取出指令(内存中读字节),放到指令队列,队列出口通过EU控制器执行指令并同时影响IP(指令指针移动指令长度,或通过指令执行后影响IP)
就这样依次执行下来了,,,大概是这样吧
MOV DX,0F100H DX=0F100HMOV DH,[DX] DH=(0F100H)='A'=41HDX=4100H 取内存0f100h处存放的字符'A'存入DH,'A'的ASCII码为41H,DH为DX寄存器高位尘大,所以DX发生变化
MOV AH,[DX] AH=(04100H)='B'=42H 原理同上
所以正确的是AH中存放的是42H,不是41H,另外DX寄存器不能作为间接寻址寄虚粗存器,可以使用BX寄存器代差兄镇替。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)