博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编语言第二章总结
阅读量:5317 次
发布时间:2019-06-14

本文共 911 字,大约阅读时间需要 3 分钟。

第二章 寄存器

(1) 字数据在寄存器中的存放

一个字由两个字节组成,可以存在一个16位寄存器中。

字的高8位 → 存放于通用寄存器的高8位寄存器

字的低8位 → 存放于通用寄存器的低8位寄存器。

例:十进制数据:       20000  → AX

       对应的二进制:    100  1110  0010  0000 B

       对应的十六进制: 4E20 H

 

(2) 8086CPU给出物理地址的方法

8086在内部用两个16位地址 通过计算合成得到一个20位的物理地址。 计算合成由CPU内部的地址加法器实现。

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

 

(3) 段的概念

「段」是8086为解决用16位寄存器表示20位的物理地址而引入的一个逻辑上的概念。 可以根据需要,将地址连续、起始物理地址为16倍数的一组内存单元(不超过64KB)当作一个「段」使用。

 段的划分是灵活的,一个物理地址可以用不同的「段地址: 偏移地址」表示。只要满足段的起始物理地址是16的倍数。

 在写法上,地址通常用十六进制表示。表示十六进制的H在「段地址: 偏移地址」中可省略不写。

 

(4) 寄存器CS和IP的作用、指令执行过程

CS: 代码段段寄存器,用于存放代码段的「段地址」

IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。

CS:IP对应的物理地址存放的是CPU将要读取的指令。

(CS) × 16 + (IP)  → 指令的物理地址

计算机工作过程:第1步: CPU基于CS:IP,计算出物理地址,然后到相应的内存单元读取指令,送到指令缓冲区。

                             第2步: CPU自动修改IP的值,IP = IP + 所读取指令的长度,从而为下一条指令读取做准备;

                             第3步: 执行指令。 转第1步,重复此过程。

 

(5) 指令move, add, jmp的基本用法

 在mov和add指令中,两个操作对象的位数应一致。

jump:(1) 同时修改CS、IP的内容:jmp   段地址: 偏移地址

           (2) 只修改IP的内容:jmp   某一合法寄存器

转载于:https://www.cnblogs.com/yangpengassembly/p/10165370.html

你可能感兴趣的文章