汇编指令手册

上传人:jiups****uk12 文档编号:38455126 上传时间:2018-05-02 格式:DOC 页数:11 大小:148KB
返回 下载 相关 举报
汇编指令手册_第1页
第1页 / 共11页
汇编指令手册_第2页
第2页 / 共11页
汇编指令手册_第3页
第3页 / 共11页
汇编指令手册_第4页
第4页 / 共11页
汇编指令手册_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《汇编指令手册》由会员分享,可在线阅读,更多相关《汇编指令手册(11页珍藏版)》请在金锄头文库上搜索。

1、8086 8088 汇编指令手册汇编指令手册通用寄存器通用寄存器 (1)数据寄存器 数据寄存器共有 4 个寄存器 AX、BX、CX、DX,用来保存操作数或运算结果等信息。 AX 寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。 BX 寄存器称为基址寄存器。常用于存放存储器地址。 CX 寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。 DX 寄存器称为数据寄存器。常用来存放双字数据的高 16 位,或存放外设端口地址。 (2)变址和指针寄存器 变址和指针寄存器包括 SI、DI、SP、BP 4 个 16 位寄存器,主要用于存放某个存储单元的 偏移地址。 SI 是源

2、变址寄存器。 DI 是目的变址寄存器,在字符串操作中,SI 和 DI 都具有自动增量或减量的功能。SP 为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址。 BP 为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。 2段寄存器 8086 CPU 的 4 个 16 位的段寄存器分别称为代码段寄存器 CS,数据段寄存器 DS,堆栈段 寄存器 SS,附加数据段寄存器 ES。 段寄存器用来确定该段在内存中的起始地址。 代码段用来存放程序的指令序列。 CS 存放代码段的段首址,指令指针寄存器 IP 指示代码段中指令的偏移地址。 3指令指针 8086 CPU 中的指令指针 IP,它总是保存下一次

3、将要从主存中取出指令的偏移地址,偏 移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP 的内容由微处理 器硬件自动设置,程序不能直接访问 IP,但一些指令却可改变 IP 的值,如转移指令、子程 序调用指令等。 3.1 标志寄存器 8086 CPU 中有一个很重要的 16 位标志寄存器,它包含 9 个标志位,主要用于保存一条指 令执行后,CPU 所处状态信息及运算结果的特征。 条件标志条件标志 (1)进位标志 CF (2)零标志 ZF (3)符号标志 SF (4)溢出标志 OF (5)奇偶标志 PF (6)辅助进位标志 AF 状态控制标志状态控制标志 (1)方向标志 DF (2)

4、中断允许标志 IF (3)追踪标志 TF 运算结果标志位运算结果标志位 1、进位标志 CF(Carry Flag) 进位标志 CF 主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个 进位或借位,那么,其值为 1,否则其值为 0。 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作, 字(字节)之间移位,专门改变 CF 值的指令等。 2、奇偶标志 PF(Parity Flag) 奇偶标志 PF 用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则 PF 的值 为 1,否则其值为 0。 利用 PF 可进行奇偶校验检查,或产生奇偶校验位。

5、在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位 。 3、辅助进位标志 AF(Auxiliary Carry Flag) 在发生下列情况时,辅助进位标志 AF 的值被置为 1,否则其值为 0: (1)在字操作时,发生低字节向高字节进位或借位时; (2)在字节操作时,发生低 4 位向高 4 位进位或借位时。 对以上 6 个运算结果标志位,在一般编程情况下,标志位 CF、ZF、SF 和 OF 的使用频率 较高,而标志位 PF 和 AF 的使用频率较低。 4、零标志 ZF(Zero Flag) 零标志 ZF 用来反映运算结果是否为 0。如果运算结果为 0,则其值为 1

6、,否则其值为 0。 在判断运算结果是否为 0 时,可使用此标志位。 5、符号标志 SF(Sign Flag) 符号标志 SF 用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中, 有符号数采用码表示法,所以,SF 也就反映运算结果的 正负号。运算结果为正数时,SF 的值为 0,否则其值为 1。 6、溢出标志 OF(Overflow Flag) 溢出标志 OF 用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算 位数所能表示的范围,则称为溢出,OF 的值被置为 1,否 则,OF 的值被清为 0。常用指令常用指令 通用数据传送指令通用数据传送指令. MOV 传送字或字

7、节MOV OPRD1,OPRD2 功能: 本指令将一个源操作数送到目的操作数中,即OPRD1 寄存器与寄存器之间的数据传送指令 立即数到通用寄存器数据传送指令 寄存器与存储器之间的数据传送指令 立即数到存储器的数据传送 3. 本指令不影响状态标志位PUSH 把字压入堆栈PUSH OPRD 功能: 实现压入操作的指令是PUSH 指令;1. OPRD 为 16 位(字)操作数,可以是寄存器或存储器操作数.2. PUSH 的操作过程是: (SP)9 或 AF=1, 则(AL)9 或 AF=1,则(AL)9 或 CF=1,则(AL) 9 或 AF=1 则(AL) 9 或 AF=1,则(AL)9 或 C

8、F=1,则(AL)9 或 AF=1,AH1 次时, 则由寄存器 CL 给出移位次数. 如 MOV CL,04 SHL AX,CL 串指令串指令 MOVS 串传送MOVS OPRD1,OPRD2 MOVSB MOVSW 功能: OPRD1 则转移CF=0&ZF=0JAE、JNB=则转移CF=0JB、JNE 则转移ZF=0&OF=SFJGE、JNL=则转移SF=OFJL、JNGE则转移SFOFJLE、JNG=则转移ZF=1&OF=SF3.标志位JC进位则转移CF=1JNC无进位则转移CF=0JO有溢出则转移OF=1JNO无溢出则转移OF=0JP、JPE有偶数个 1 则转移PF=1JNP、JPO有奇

9、数个 1 则转移PF=0JS若为负数则转移SF=1JNS若为正数,则转移SF=0调用子程序与返回指令调用子程序与返回指令 CALL 子程序调用指令 CALL OPRD 功能: 过程调用指令1. 其中 OPRD 为过程的目的地址. 2. 过程调用可分为段内调用和段间调用两种.寻址方式也可以分为直接寻址和间接寻址两种. 3. 本指令不影响标志位.RET 子程序返回指令 RET 功能: 当调用的过程结束后实现从过程返回至原调用程序的下一条指令,本指令不影响标志位.由于在过程定义时,已指明其近(NEAR)或远(FAR)的属性,所以 RET 指令根据段内调用与段间调用,执行不同的操作 对段内调用: 返回时,由堆栈弹出一个字的返回地址的段内偏移量至 IP. 对段外调用: 返回时,由堆栈弹出的第一个字为返回地址的段内偏移量,将其送入 IP 中,由堆栈弹出第二个字为返回地址的段基址,将其送入 CS 中PROC,ENDP过程定义语句 其它指令其它指令 OFFSET返回偏移地址SEG 返回段地址DUP操作数字段用复制操作符SEGMENT,ENDS 段定义指令 ASSUME段地址分配指令 ORG 起始偏移地址设置指令$ 地址计数器的当前值

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号