继续我的汇编学习
指令和数据在内存中是没有区别的
我们CPU如何区分指令和数据呢?
需要用到段地址寄存器cs 以及 偏移地址寄存器ip
查看当前所有寄存器信息方式为-r
修改方式: -r cs
:
-r ip
:
只有信息通过cs:ip 组合的方式时,数据才会被当做指令来执行
ip寄存器与指令的关系:
1,指令都是有长度的
2,一条指令有多个字节构成
3:指令的执行过程
CPU从CS:IP所指向的内存单元读取指令,存放到 指令缓存器中
IP = IP+所读指令的长度,从而指向下一条指令
执行指令缓存器中的内容,回到步骤1
(为什么这么设计?为了实现一个功能,过一段回头要想这个)
当前指令是 MOV ax,4
指令机器码为 B80400
指令长度为 3 个字节
目前CS:073F
目前IP: 0109
执行指令的过程是:该指令放到指令缓存器中,然后ip更新,再去执行指令
IP=IP+3=010C
执行指令
修改段地址内存器,以及偏移地址寄存器 的指令:jmp
写法①:2000:0
②:寄存器