第二章——寄存器

今天我们来看看第二章。
第二章讲的是寄存器,这里蕴含的知识点还是比较多的。
我们来看一看。
通用寄存器——AX,BX,CX,DX。
对于8086CPU,每个寄存器都是16位的。
为了兼容上一代8位的CPU,8086CPU的寄存器分为高位和低位,如AX分为AH,AL。
字节:Byte(8bit)
字:word(16bit)
下面是几条汇编指令:

mov A,B      //把B的值赋给A,A是寄存器,B可以是寄存器也可以是具体的数字
add A,B      //把A的值加上B的值,A和B的含义同上

8086CPU是16位的,其含义有:

  • 运算器一次最多可以处理16位的数据
  • 寄存器的最大宽度位16位
  • 寄存器和运算器之间的通路为16位

8086CPU给出物理地址的方式是:

物理地址=段地址*16+偏移地址

值得提示的是,虽然有段地址,但是内存并没有分段,只是CPU把它们分段了而已。
8086CPU有4个段寄存器——CS、DS、SS、ES
CS(code segment)用于存储指令(代码),CPU会把CS:IP指向的内容视为指令去执行。
这里CS相当于段地址,而IP相当于偏移地址。
我们可以用以下命令去修改CS:IP的指向:

jmp CS:IP      //指讲执行指针转移到CS:IP地址,从那里读取命令执行

我们也可以用jmp 寄存器,用来只改变IP的值

还有一个概念,就是代码段,指的就是存放代码的一段地址,当然了,这个只是我们的想象,实际上CPU并不会区分这个。
debug中的一些命令(在DOS中输入debug即可进入debug模式):

r       //查看(直接输入r)、改变(输入r加上要修改的寄存器)CPU寄存器中的内容
d       //查看内存中的内容
e       //改写内存中的内容
u       //将内存中的机器指令翻译成汇编指令
t       //执行一条机器指令
a       //以汇编指令的格式在内存中写入一条机器指令(从CS:IP所指的位置开始输入)

第二章的精华内容好像就是那么多了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值