小弟初学汇编,没有基础,以下问题请各位前辈老师帮忙啊!

来源:百度知道 编辑:UC知道 时间:2024/06/10 22:35:54
情况是这样的,我现在使用卜艳萍,周伟老师编著的《汇编语言程序设计教程》,在第三章“微型计算机的指令系统”里,对49~54页以下例题有所疑问:
1.MOV AX,[200H],该条指令的的物理地址是30200H,该题附带的寻址方式示意图我看不明白,以至于接下的“指令之行后的结果为:(AX)=1122H”这句看不懂,1122H是怎么跟30200H联系起来的啊?还有凡是带寻址方式示意图的我都看不明白,请各位老师帮忙啊!谢谢

同学,1122H和30200H是这样联系起来的。
在内存里,有许多储存空间,以字节为单位,它们每一个都有地址,每个字节空间里都存有8个逻辑状态,即0或1。
CPU通过地址线和内存通信,内存插在电脑那块PCB的金手指上,它们之间一定有通信协议,总之,CPU发送一个地址给内存,让后内存读出这个地址里的数据给CPU。这个地址,被称为物理地址,因为物理地址的数值在内存出厂时就已经确定了。
现在有一根1M的内存,即物理地址从00000H-FFFFFH都是可用的。其30200H的物理地址里放了22h,而30201H里放了11h,这时,我们把两个单元联合起来看成一个字。也就是说,在30200H存的是0001000100100010,把这里面的数据传到ax,就是1122H。
现在来说寻址方式的问题,现在要访问这个30200H这个地址,显然一个寄存器最大的表示范围是FFFFH,不能访问到30200H这个地址,那么当时就制定了一个规则。用段寄存器左移四位(乘以16)+偏移地址来构成真正的物理地址。
这里ds=3000H [200]实际的物理地址为30000+200=30200
所谓寻址方式只是用多种方式来灵活的访问内存中的数据,在实模式下,其段地址和偏移地址共同构成物理地址的法则是通用的。

我没搞PC汇编的,我觉得,每条指令在运行的时候都有个物理地址

直接寻址就是:把200H单元内容送 AX
结果为:1122H 这没问题啊

1122H, 和30200H之间没有什么联系的

先看王爽的那本汇编语言

然后查阅386指令集应该差不多了

颓废_小胖

正解。