汇编语言问题16位cpu是不是读取一个内存地址后紧接自动读取下一个地址,一次读取两个地址

2024-11-24 09:46:31
推荐回答(3个)
回答1:

十六位汇编一次最大可实现双字节读入,也可读一个字节
mov al,[di]
mov ax,[dl]
32位汇编一次最大可实现四字节内容读入,也可读一个字节,一个字
mov al,[edi]
mov ax,[edi]
mov eax,[edi]
读入多少字节的内容,根据指令不同而不同,
地址只要你在程序里不变动,其是不会移动的;除非你用字符串处理指令,设置方向标志位,其会自动根据字节移动指令或字移动指令,增加(CLD)或减少(STD)内存地址偏移。

另一个点是,cpu取指令若不发生转移而顺序执行的话,其IP或EIP的移动是根据指令长度而定的,可以是1byte,或字,或三bytes,或双字等

回答2:

32位cpu也可以一次只读一个byte呀

回答3:

一次读取好多个地址,有个缓冲区的