汇编语言基础学习
来源:互联网 发布:ubuntu mathtype 编辑:程序博客网 时间:2024/05/22 15:08
第一节:
X:exchange,交换数据的意思
E:extend,32位机器
A:accumulator,累加器
B:base,基址寄存器
C:countor
D:data,数据
H:高位
L:低位
AH&AL=AX(accumulator):累加寄存器
BH&BL=BX(base):基址寄存器
CH&CL=CX(count):计数寄存器
DH&DL=DX(data):数据寄存器
第二节:
S:segment,段。
SP(Stack Pointer):堆栈指针寄存器
BP(Base Pointer):基址指针寄存器
SI(Source Index):源变址寄存器
DI(Destination Index):目的变址寄存器
IP(Instruction Pointer):指令指针寄存器
CS(Code Segment)代码段寄存器
DS(Data Segment):数据段寄存器
SS(Stack Segment):堆栈段寄存器
ES(Extra Segment):附加段寄存器
FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值
sp、bp是和ss联用的,一个指向堆栈顶端,一个指向堆栈底端。
si、di是和ds联用的,一个指向源操作数,一个指向目的操作数.
ip是和cs联用的,用于指向指令地址.
es、fs、gs都是附加段寄存器,一般是用于ds的备选,比如在串行复制操作的时候额外使用es。
他们把si、di叫变址寄存器,把sp、bp、ip叫指针寄存器,然后这些都是同一个东西,就是存储自由变动的那部分数值。
他们把cs、ds、ss、es、fs、gs叫段寄存器,不就是基础部分数值么。故意搞复杂,其实简单得很。
第三节:
标志寄存器:记录各种进位。
PSW(Program Flag)程序状态字(即标志)寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成.
条件码:
①OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配.
②SF(Sign Flag)符号标志,结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.注意:Carry标志中存放计算后最右的位.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。
有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志.结果操作数中1的个数为偶数时置1,否则置0.
控制标志位:
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。
顺便可以看看test和cmp的区别:http://blog.csdn.net/yaojiank/article/details/5040742
- 汇编语言学习-基础篇
- 汇编语言基础学习
- 汇编语言学习-基础篇2
- Intel汇编语言程序设计学习-第三章 汇编语言基础-上
- Intel汇编语言程序设计学习-第三章 汇编语言基础-中
- Intel汇编语言程序设计学习-第三章 汇编语言基础-下
- AT&T汇编语言基础学习示例
- 汇编语言学习笔记--基础指令篇
- 汇编语言基础
- 汇编语言基础
- 汇编语言基础
- 汇编语言程序设计学习笔记(第一遍学习)第3节:HLA高级汇编语言基础尝鲜
- 汇编语言-学习
- 学习汇编语言
- 学习汇编语言!
- 学习汇编语言
- 汇编语言学习
- 汇编语言学习
- C++实现顺序表
- 解决 驱动创建设备节点时 权限为 root只读只写 的问题
- Minimum Path Sum
- C++Primer第五版 1.4.4节练习
- Java_jdbc 基础笔记之十三 数据库连接(DAO)
- 汇编语言基础学习
- 轻量级.Net开源日志组件--AHCT.Log.NLogger
- java中对象的理解
- Pixel binning
- Tomcat搭建资源服务器
- hibernate中对象的三种状态分析
- 树状数组(一)
- C++ Primer Plus 第6版 中文版 第6章编程练习
- notification 点击响应 以及启动activity的坑