汇编语言第二章总结

情到浓时终转凉″ 提交于 2020-03-24 02:26:48

  在CPU主要部件是寄存器,负责信息的存储功能,而这正是第二章的重点。

  下面将知识点总结如下:

一、不同CPU寄存器个数,结构都不同。8086CPU有14个寄存器分别为:

AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW

这些寄存器都是16位,即可存放两个字节。

其中AX、BX、CX、DX为通用寄存器,都可分为两个可独立使用的8位寄存器来用。(前八位为H,后八位为L,例如AX可分为AH,AL)

二、几条汇编指令

1.move xx,num   将num送入寄存器xx;

2.add xx,num   将寄存器xx的数值加上num;

3.move xx,yy   将寄存器yy的数值送入寄存器xx;

4.add xx,yy   将寄存器xx,yy的值相加并存在xx中;

(其中英文大小写无影响mov ax,18和MOV AX,18含义相同)

(其中num如62627为十进制数字,计算时应化为16进制F4A3H计算(H为16进制标识))

Tips:错误指令如下:

mov ax,bl  不能在8和16位寄存器中传送数据

mov bh,ax  不能在16和8位寄存器中传送数据

mov al,20000  在8位寄存器中存放值超过极限255

add al,100H  不能将高于8位数据加到一个8位寄存器中

三、8086CPU在内部用两个16位地址(分别为段地址、偏移地址)合成一个20位物理地址

地址加法器采用  物理地址=段地址*16+偏移地址

段地址*16可看为寄出地址,即相当于CPU在访问内存时,用一个寄出地址和一个相对于基础地址的偏移地址相加,给出内存单元物理地址

四、CS代码段寄存器 IP指令指针寄存器,即设CS为M,IP为N,8086CPU将从内存M*16+N单元开始读取执行一条指令

任意时刻CPU将CS:IP指向的内容当做指令执行,即若某一内存中信息被CPU执行过,则一定被CS:IP指向过

修改CS、IP指令时用jmp指令(不能使用mov):

1.同时修改CS、IP  jmp 段地址:偏移地址

jmp 2AE3:3  CS=2AE3H,IP=0003H,CPU从2AE33H读取指令

2.仅修改IP  jmp 某一合法寄存器(用寄存器中的值修改IP)

mov ax,1000H

jmp ax   CS值不变,IP=1000H

五、让CPU执行代码段指令时,必须将CS:IP指向所定义代码段中第一条指令的首地址。

六、实验

查看CPU和内存,用机器指令和汇编指令编程

R命令:查看、修改CPU中寄存器内容

D命令:查看内存中的内容

E命令:修改内存中的内容(可以写入数据、指令,在内存中,它们实际没有区别)

U命令:将内存中的内容解释为机器指令和对应的汇编指令

T命令:执行CS:IP指向的内存单元处的指令

A命令:以汇编指令的形式向内存中写入指令

(编写好代码务必让CS:IP指向代码起始内存单元,并用t执行,用r查看寄存器中操作结果)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!