[工学]80x86机器的寻址方式与指令系统.ppt

[工学]80x86机器的寻址方式与指令系统

80X86机器的寻址方式与指令系统 80x86系列机与汇编语言程序设计概论 80x86系列机的编程模型简介 80x86系列机的存储器管理与寻址方式 80x86系列机的指令系统简介 80x86系列机与汇编语言程序设计概论 80x86系列机编程模型简介 80x86系列机的存储管理与寻址方式 80x86系列机的指令系统简介 8086/8088指令系统 指令集说明 数据传送指令 堆栈操作指令 标志操作指令 加减运算指令 乘除运算指令 逻辑运算和移位指令 转移指令 关于加减运算指令,有如下几点通用说明,清予以注意: ① 加减运算指令对无符号数和有符号数的处理一视同仁,既作为无符号数而影响标志CF和AF,也作为有符号数影响标志OF和SF,当然总会影响标志ZF。加减运算指令也要影响标志PF。有些指令稍有例外。 ② 可参与加减运算的操作数如图2.17所示。总是只有通用寄存器或存储单元可用于存放运算结果。如果参与运算的操作数有两个,则最多只能有一个是存储器操作数。 ③ 如果参与运算的操作数有两个,则它们的类型必须一致,即同时为字节,或同时为字。 ④ 存储器操作数可采用2.3节中介绍的五种存储器操作数寻址方式。 存储器 存储器 立即数 立即数 通用 寄存器 通用 寄存器 通用 寄存器 ± ± ± ± ± 存 储 器 通用寄存器 图 2.17 参与加减运算的操作数 1. 加法指令 (1)普通加法指令ADD(ADDition) 普通加法指令的格式如下: ? ADD OPRD1,OPRD2 ? 这条指令完成两个操作数相加,结果送至目的操作数OPRD1,即: OPRD1 OPRD1 + OPRD2 例如: ? ADD AL,5 ADD AL,AH ADD DI,DI ADD BL,VARB ;VARB是字节变量 ADD VARW,SI ;VARW是字变量 ADD [BX+SI-3],AX ? 下面的程序片段可被用来说明加法指令及其对标志的影响,同时它也说明了8位数据寄存器与16位数据寄存器间的关系。程序片段中的注释用于说明对应指令执行完后受影响的寄存器和标志位的变化,为了便于说明,采用16进制的形式表示数据。 MOV AX,7896H ;AX=7896H,即AH=78H,AL=96H ;各标志位保持不变 ADD AL,AH ;AL=0EH,AH=78H,即AX=780EH ;CF=1,ZF=0,SF=0, ;OF=0,AF=0,PF=0 ADD AH,AL ;AH=86H,AL=0EH,即AX=860EH ;CF=0,ZF=0,SF=1, ;OF=1,AF=1,PF=0 ADD AL,0F2H ;AL=00H,AH=86H,即AX=8600H ;CF=1,ZF=1,SF=0, ;OF=0,AF=1,PF=1 ADD AX,1234H ;AX=9834H,即AH=98,AL=34H ;CF=0,ZF=0,SF=1, ;OF=0,AF=0,PF=0 (2)带进位加指令ADC(ADd with Carry) 带进位加指令的格式如下: ? ADC OPRD1,OPRD2 ? 这条指令与ADD指令类似,完成两个操作数相加,但还要把进位标志CF的现行值加上去,把结果送至目的操作数OPRD1,即: OPRD1

文档评论(0)

1亿VIP精品文档

相关文档