mov [2000h],al指令需要几个总线周期?

mov [2000h],al指令需要几个总线周期?
 

问题:

在《16/32位微机原理汇编语言及接口技术》书的第107页有这样一段话:“mov [2000h],al”读到指令队列需要3个“存储器读”总线周期,而执行它只需1个“存储器写”总线周期。

您能详细讲讲为什么是3个“存储器读”1个“存储器写”。

对应习题4.13指令“add [2000h],ax”该如何计算指令周期呢?谢谢!

回复:

这是一个很好的问题,很能体现软硬件结合的特点。

8088数据总线为8位,每次总线周期只能进行8位数据(即一个字节)读写。“mov [2000h],al”指令的代码是3个字节,所以进行指令读取(即取指)需要3个读取存储器的总线周期。这是指读取指令阶段,接着处理器执行该指令。

该指令的功能是将AL寄存器内容传送到主存偏移地址[2000h]位置,就是进行存储器写操作。因为只有一个字节数据,所以执行它只需1个“存储器写”总线周期。

至于习题4.13指令“add [2000h],ax”,因为是3个字节代码,所以8088需要3个存储器读总线周期进行指令读取。执行该指令,首先从主存[2000h]单元读取一个16位字,故需要2个存储器读总线周期;然后读取的数据与AX内容相加,结果还要写回这个位置,这又需要2个存储器写总线周期。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值