8088指令系统解读.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8088指令系统解读

8086指令系统 §1 数据类型 §2 指令格式 §3 寻址方式 §4 指令系统 (指令简表) §1 数据类型 变量定义不区分是否是有符号数 是否是有符号数由程序自己控制 §2 指令格式 名称 指令 参数1,参数2 ;注释 名称若是变量名(变量定义),后无冒号 名称若是标号(转移入口),后有冒号,例: Var DW 1234H Label0: MOV AX,Var 参数(操作数)之间用逗号隔开 §3 寻址方式 寄存器寻址:MOV AX,BX 立即数:MOV AL,3 内存寻址:最多由3部分组成:基址(BX或BP)、变址(SI或DI)及偏移量组成 直接寻址(只有偏移):MOV AL,[1234] (Debug),在汇编中用变量名代替 寄存器间接(有基址或变址之一):MOV AL,[BX] 基址加变址:MOV AL,[BX+DI] 相对(基址或变址+偏移):MOV AL,[SI+2] 基址加变址相对(3部分都有):MOV AL,[SI+BP+4] 段寄存器的使用 默认段寄存器 以BP为间接寻址的为SS 其它的为使用DS 若需要改变段寄存器,在内存前增加前缀即可,如:MOV AL,CS:[SI] 386+还可以使用新增的两个寄存器FS与GS 在DEBUG中,段前缀为单独的一条指令 §4 指令系统 数据传送 IO 算术运算 逻辑运算 移位 串操作 程序转移 其它 数据传送 MOV X1,X2 PUSH X POP X XCHG X1,X2 XLAT LEA R,M LDS R,M LES R,M LAHF SAHF PUSHF POPF IO IN AL,P IN AX,P OUT P,AL OUT P,AX 算术运算 ADD X1,X2 ADC X1,X2 SUB X1,X2 SBB X1,X2 AAA DAA INC X DEC X CMP X1,X2 MUL X IMUL X DIV X IDIV X CBW CWD 逻辑运算 NOT X AND X1,X2 OR X1,X2 XOR X1,X2 TEST X1,X2 NEG X 移位 SAL X,N SHL X,N SAR X,N SHR X,N 串操作 MOVS LODS STOS CMPS SCAS REP/REPE/REPNZ 程序转移 CALL 目标 RET IRET JMP 目标 LOOP 目标 LOOPZ/LOOPE LOOPNZ/LOOPNE INT n INTO 其它 CLC CMC STC CLD STD CLI STI NOP HLT ESC MOV 不能用任何指令直接修改CS 源与目标应要相同的数据长度,若两者都为不确定内容(立即数或内存),用用PTR指定类型,例: MOV BYTE PTR [SI],1 不能直接传送: 立即数到段寄存器、内存到内存 PUSH/POP 入栈出栈应配对使用,后进先出的原则 8086一次只能用16位寄存器或内存 SS:SP为堆栈指针,压入一个,SP减2 286开始可以PUSH立即数 386开始可以操作32位寄存器与内存 XLAT XLAT为查表指令 相当于MOV AL,[BX+AL] (但没此指令) 例:查表求平方: TABLE DB 0,1,4,9,16,25,36,49,64,81 MOV BX,OFFSET TABLE;起始地址 MOV AL,7 ;查7的平方 XLAT ;结果49已经在AL中 LEA 格式:LEA R16,M 功能:取内存地址 与MOV不同,MOV取值,LEA取地址 LEA AX,OFFSET V与LEA AX,V的结果相同,但是两种不同的办法 可以用LEA AX,[SI+3],但MOV AX,SI+3是错的 LDS/LES 格式: LDS 寄存器,内存 功能:内存的低16位送寄存器,高16为送DS 寄存器只能是16位的 LAHF/SAHF/PUSHF/POPF 专门针对标志寄存器的操作 LAHF:把标志的低8位(有SZAPC标志位)保存到AH中 SAHF:把AH中的值恢复到标志的低8位中 PUSHF:16位标志寄存器入栈 POPF: 16位标志寄存器出栈 IN/OUT I/O指令的寻址空间为64K,不需要段 IN AL,n 只能寻址地址为0-255的端口 IN AL,[DX]可以寻址高端口地址 ADD/ADC 格式:ADD X1,X2 功能:相加结果放X1 X1可为R/M,X2可为R/M/n ADC在相加后还要加上进位位,若多字相加,先最低字用ADD,高字用ADC SUB/SBB 格式、功能与ADD/ADC类似 SBB在相减后,还要再减去进位位 有符号数与无符号数的加减使用相同的指令。 无符号数加减进位为1表示溢出 有符号数加减溢出位为1表示溢出 INC

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档