关于mov 段寄存器,内存单元
按照书上的代码 mov ax,1000Hmov ds,ax
mov ds,
能够把对应内存里的数据放入ds
但是把段寄存器 ds 改为 cs 结果就不对了
求解答。。。。 本帖最后由 我是大神哥哥 于 2017-7-19 21:31 编辑
首先要知道8086CPU不支持 mov 段寄存器,内存单元的,CS寄存器只是用于CPU执行的当前指令的段地址。 本帖最后由 little豆宝 于 2017-7-19 22:02 编辑
1.ds是存放指令的段寄存器,它指向的内存存放的是代码(CPU执行的)
2.cs是存放数据的段寄存器,它指向的内存是存放数据的(比如某个变量需要的值)
所以,这两个寄存器有不同的作用。你换了cs存放指令的段,CUP执行时还是去ds中找,就找的不是你想给的了。 本帖最后由 erh 于 2017-7-20 23:09 编辑
mov cs,ax是不允许的。cs是代码段,不能用mov指令赋值。想改的话可以试试push ax,然后iret或retf
页:
[1]