第二章总结

先介绍的几个通用寄存器和字在其中的存储进行解释。

通用寄存器有AX,BX,CX,DX 几种,AX包括AH和AL。BX,CX,DX也同样。

然后是汇编指令

介绍了mov ,add两个汇编指令的用法。

mov 

将后面的操作数赋给前面的操作数

mov 寄存器,常数

mov 寄存器,寄存器

相当于C语言里的赋值运算。

add

前操作数=前操作数+后操作数

add 寄存器,常数

add 寄存器,寄存器

相当于C语言里+=运算。

jump:

修改CS:IP的指令(jmp 段地址: 偏移地址)

例:jmp AX 效果IP=AX

jmp 2AE3:3 效果CS=2AE3H,IP=0003H

在8086CPU中给出物理地址的表示

核心内容是:物理地址=段地址*16+偏移地址

以下摘自教材P21

1)CPU中相关部件提供两个16位地址,分别称为段地址和偏移地址

2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件

3)地址加法器将两个16位地址合成一个20 位地址

4)地址加法器通过内部总线将20位物理地址送入输入输出控制电路

5)输入输出控制电路将20 位物理地址送上地址总线

6)20位物理地址被地址总线送到存储器

所以在内存中有的地址表示方法不唯一。

例如 0100:0010 ,0101:0000表示的内存地址是相同的。

然后介绍CS:IP两个段寄存器,CS是代码段寄存器,IP是指令指针段寄存器。可以通过修改CS:IP的值来执行指定位置处的指令。

在debug下单步调试中可见CS:IP总是指向即将执行的下一条指令。

(在debug下可以直接通过R命令修改寄存器)

由于物理地址=段地址*16+偏移地址。我们可以根据需要将一组内存单元定义为一个代码段。

一个段的长度最大为64KB。(2^16)

posted @ 2018-10-27 20:11  20171308085  阅读(107)  评论(0编辑  收藏  举报