mov指令为什么不能实现内存到内存的传送
答案:2 悬赏:40
解决时间 2021-02-28 03:52
- 提问者网友:霸道又专情♚
- 2021-02-27 16:05
mov指令为什么不能实现内存到内存的传送
最佳答案
- 二级知识专家网友:摧毁过往
- 2021-02-27 16:25
汇编是单条指令操作的
而数据交换都是通过寄存器进行的
因此要交换内存数据必须先从内存读取到CPU寄存器再写入到内存
而数据交换都是通过寄存器进行的
因此要交换内存数据必须先从内存读取到CPU寄存器再写入到内存
全部回答
- 1楼网友:末路丶一枝花
- 2021-02-27 16:48
据段0:0~0:15单元中的内容逐字(双字节)读出,然后写到代码段对应的偏移位置,从而达到改写程序中数据的目的。
根据原程序设计思路,所填指令必须是:mov cs:[bx],ax。
指令mov ax,[bx] 从数据段读出一个字,
指令mov cs:[bx],ax把这个字写到代码段对应的偏移位置
mov cs:[bx],ax的目的操作数是基址寻址,默认的段寄存器是数据段寄存器,若要写到其它段,必须加段寄存器前缀。因为要把数据写到代码段,所以,必须在目的操作数前面加上代码段寄存器前缀。
但,这段程序未等执行完毕就会产生不可预料的结果。因为程序主题指令很短,未等执行完毕,就被改写,继而导致结果不可预料。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯