汇编语言复习第二章节

CPU包含运算器、寄存器

一、数据寄存器:

AX用于算术、逻辑运算、外设传送信息

BX用于存放存储器地址

CX用于移位指令、循环和串处理指令中用作隐含的计数器

DX用于存放双字的高十六位

其中AX、CX、DX不能作为基址和变址储存器来存储寻址

二、变址寄存器

ESI、EDI、SI、DI称为变址寄存器,主要用于存放某个存储单元的偏移地址

SI是源变量、DI是目的变址寄存器

三、指针寄存器

EBP、ESP、BP、SP主要用于存储堆栈内储存单元的偏移量

SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址

BP为基址针寄存器,用于存放堆栈段中某一存储单元的偏移地址

四、专用寄存器IP、SP、FLAGS

IP为指令指针,用于保存下一次将要从主存中取出指令的偏移地址

SP为堆栈指针寄存器,与堆栈段指针SS联用确定堆栈段中栈顶的地址SP用于存放栈顶的偏移地址

FLAGS

OF溢出标志

SF符号标志

ZF零标志

CF进位标志

AF辅助进位标志

PF奇偶标志

DF方向标志

TF陷阱标志

IF中断标志

应用举例:

ZF零标志:

  若运算结果为0,则ZF为1

  例如3AH+7CH=B6H≠0,则ZF=0

SF符号标志

  运算结果最高位为1,则SF=1

  例如3AH+7CH=B6H最高位D7为1,则SF=1

PF奇偶标志

  算术运算结果最低字节中1的个数为0或者偶数,PF=1

  例如3AH+7CH=B6H=10110110B,有5个1,则PF=0

OF溢出标志

  算数结果有溢出,OF=1

  例如3AH+7CH=B6H=10110110B产生溢出,则OF=1

  AAH+7CH=26H,没有溢出,则OF=0

AF辅助进位标志

  运算时D3低字节有进位或者借位,AF=1

  例如3AH+7CCH=B6H=10110110B,D3有进位,AF=1

DF方向标志

  控制地址的变化方向,DF=0,串操作的存储器地址自动增加

  CLD指令复位方向标志:DF=0

  STD指令复位方向标志:DF=1

IF中断允许标志

  IF=1允许中断

  IF=0不允许中断

  CLI指令复位中断标志:IF=0

  STI指令复位中断标志:IF=1

TF陷阱标志

  TF=0处理器正常工作

  TF=1处理器单步执行指令

  单步执行指令:处理器在每条指令执行结束时,产生一个编号为1的内部中断

五、段寄存器

代码段寄存器CS

数据段寄存器DS

堆栈段寄存器SS

附加数据段寄存器ES

段寄存器用来确定该段寄存器在内存中的起始地址

 

一个字节的内容是该字节单元内存放的二进制信息;字节0004H包含的内容是:78H

一个字的内容是该字地址所指向的单元及其后继一个单元的内容组成;字0004H包含的内容是:5678H

一个双字的内容是该字地址所指向的单元及其后继三个单元的内容组成。双字0004H包含的内容是:12345678H

六、存储器寻址

物理地址PA=段地址×16d + 偏移量

 

posted @   平凡的柳先生  阅读(229)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示