第3-1讲 8086指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8086的指令系统 可以分为以下六类: 数据传送指令 算术运算指令 逻辑运算指令 串操作指令 控制转移指令 处理器控制指令 一. 数据传送指令 最基本、最重要的一类操作 可以分为以下四种: 通用数据传送指令(MOV等) 累加器专用数据传送指令(IN、OUT等) 地址–目的数据传送指令(LEA等) 标志数据传送指令(LAHF等) 1. 通用传送指令 最基本的传送指令(MOV) MOV OPRD1, OPRD2 OPRD1:目的操作数 OPRD2:原操作数 完成的功能:OPRD1 = OPRD2,即把一个字节或字从源操作数送到目的操作数 操作数:可以为CPU内部绝大部分的寄存器 唯一的允许以段寄存器为操作数的指令 (1) MOV指令 完成CPU内部寄存器之间的任意数据传送(CS和IP除外) MOV AX, BX 立即数到CPU内部通用寄存器组的传送 MOV CL, 4 MOV AX, 03FFH 注意:这里只是立即数到通用寄存器组的传送,也就是只有AX, BX, CX, DX, BP, SP, SI和DI能够作为目的操作数。段寄存器是不能用立即数赋值的。 CPU内部寄存器组(CS与IP除外)与存储器之间的数据传送,可以实现字节或字的传送 MOV AL, [SI] MOV DS, [SI+BX] 不能实现存储单元之间的数据传送,需要通过CPU内部寄存器作为“桥梁”来传递数据 (1) MOV指令 立即数到存储单元的数据传送 MOV BYTE PTR[SI], 04H MOV WORD PTR[SI], 08H WORD PTR 字长度标记;BYTE PTR 字节长度标记 DWORD PTR 双字长度标记 (伪指令) 8086下面没有DWORD的相关操作,所以DWORD PTR这条伪指令在8086环境下不成立 对标志位的影响:所有通用传送指令都不影响标志位。 Example MOV AX, 89FEH MOV BX, 1234H MOV AL, BH MOV AH, [SI] MOV AX, [BP] MOV BYTE PTR[SI], 90H MOV WORD PTR[SI], 88H 输入相关指令 指令执行结果(1) 指令执行结果(2) 指令执行结果(3) 指令执行结果(4) 指令执行结果(5) MOV指令允许传送数据的途径 IP寄存器不能用做源操作数和目的操作数 立即数和CS寄存器不能做目的操作数 (2) 堆栈操作指令 堆栈:存储器中的一段连续区域,通常用于存放临时数据或中间变量。 遵循“先入后出”的规则 堆栈段基址用SS表示,栈顶用SP表示 数据出/入栈用POP/PUSH指令 堆栈中的数据可以通过[BP] 来访问 堆栈的基本操作单元是 字(16位) 堆栈段的最大容量为SP的初值和SS所指示的堆栈段基地址之间的距离 PUSH OPRD 操作数长度必须为16位 PUSH AX (正确) PUSH AL (错误) 指令执行(以PUSH AX为例): SP ? SP – 1, 将AH ? [SP] SP ? SP – 1, 将AL ? [SP] 完成操作后,SP = SP – 2 操作数可以是 CPU内部通用寄存器 段寄存器(CS除外) 内存操作数 POP OPRD 操作数长度必须为16位 POP BX (正确) POP AL (错误) 指令执行(以POP AX为例): AH ? [SP],然后SP ? SP + 1 AL ? [SP],然后SP ? SP + 1 完成操作后,SP = SP + 2 操作数可以是 CPU内部通用寄存器 段寄存器(CS除外) 内存操作数 (3)交换指令 格式:XCHG OPR1, OPR2 用于两个操作数(可以为字节或字)的数据交换 操作数可以是: 累加器与通用寄存器 通用寄存器与通用寄存器 存储器与通用寄存器 段寄存器不能作为操作数 例: XCHG AL, BL XCHG BX, CX XCHG [2530], CX 通用数据传送指令 2. 累加器专用数据传送指令 累加器:AX ( AH、AL ) 输入指令(IN) 输出指令(OUT) 换码指令 (XLAT) 输入输出指令 用于CPU与IO接口电路之间传送数据 存储器空间与IO空间 存储器可寻址1MB空间 IO可寻址64K个输入/输出端口 (1) 输入指令 IN 指令格式: (直接输入指令) IN AL, PORT AL ? [PORT] IN AX, PORT AX ? [PORT+1][PORT] (间接输入指令) IN AL, DX AL ? [DX] IN AX, DX

文档评论(0)

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

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

1亿VIP精品文档

相关文档