微机原理第三版第三章.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
63 ? 转移指令的实质: 改变 PC, 在 8086 系列,即 (CS:IP) 的内容。 ? 转移指令分为 无条件转移 和 条件转移 。 无条件转移的寻址方式较多,转移范围大; 条件转移的测试条件丰富,转移范围小。 1. 转移指令 64 例:程序片段 CODE 1 SEGMENT --- JMP AGAIN --- JMP far goon AGAIN : --- --- CODE 1 ENDS CODE 2 SEGMENT --- goon : --- --- CODE 2 ENDS ? 程序片段中, JMP AGAIN ,为段内转 移,其标号在同一段 内; ? JMP far goon 为段 间转移,其的标号在 另一个程序段中。 ? 标号 代表地址,也 称为 符号地址 ,可由 软件工具将其转化为 逻辑地址 。 (1) 无条件转移指令 - JMP SEGMENT,ENDS 是汇编语言程序中的伪指令( Directives ) 65 直接转移:直接给出目标地址 / 相对的位移量 间接转移:间接给出目标地址的寻址方式 段内转移:目标地址在同一段内,只改变 IP 段间转移:目标地址不在同一段内,改变 CS : IP 根据 JMP 的远近 根据目标地址的寻址方式 31 (3) 字节 / 字扩展 格式: CBW ; combine byte to word CWD ; combine word to double word CBW 隐含的源操作数 AL; 结果存 AX CWD 隐含的源操作数 AX; 结果存 DX 32 2. 输入输出( I/O )指令 功能 : CPU 访问 I/O 端口 只用 累加器 AL 或 AX 来传送信息。 外 设 外 设 I/O I/O CPU (1) 输入指令 格式 : IN acc,PORT ;PORT 端口号 0 ~ 255 例 : 1 ) IN AL , 80H ;(AL )← (80H 端口 ) 2 ) IN AX,80H ;(AH) ←( 81H 端口 ); (AL )← (80H 端口 ) 3 ) MOV DX, 03B0H IN AL , DX ;(AL )← ((DX)) IN acc,DX ; DX 表示的端口范围达 64K 33 例: OUT 68H , AX ;(69H , 68H )←( AX ) (2) 输出指令 OUT 格式: OUT port,acc 或 OUT DX,acc MOV DX, 220H OUT DX , AL ;((DX)) ← (AL) 34 例 : 已知 (AX)=8060H,(DX)= 03F8H, 端口 PORT1 的地址是 48H, 内容是 40H, 请指出下 列指令执行的结果 . 1) OUT DX, AL 2) IN AL, PORT1 35 3.3.2 算术运算指令 指令本身并不区分无符号数和带符号数: ? 无符号数可用 CF 标志判断是否溢出; ? 带符号数可用 OF 标志判断是否溢出; ? 带符号数的溢出是一种 出错状态 ,在 运算过程中应当避免。无符号数的溢出 可看作是向更高位的进位。 36 1) 不带进位的加法指令 ADD dest , src ; dest dest+src 1. 加法指令 src : n ,通用 REG , M 三种寻址方式 dest : 通用 REG , M 两种寻址方式 ? 实例: ADD CL , 10 ; ADD SI , [BX+20H] ; ADD [DI] , 200H ; 37 例: MOV AL , 7EH ADD AL , 5BH 对标志位的影响: CF=0 , AF=1 OF=1 , PF=0 SF=1 ZF=0 38 ? 实例: ADC AX , BX ; ADC [BX + 200H] , CL ; 2) 带进位的加法指令 ADC dest,src ; dest dest+src+CF 3) 加 1 指令 INC dest ; dest+1 dest( 不影响 CF, 常用循环指令中修改 指针或循环次数 ) 39 例 : 已知数据如图,低位在前 , 高位在后 . 1) 将其看作两个 4 字节 ( 双倍精度字 ) 的无符号数相加: ? 结果存放在 SUM 开始的存储区。 ? ADC 指令用于多字节加法运算中 程序段如下: MOV AX , NUM1 MOV BX,NUM2 ADD AX , BX ; 低字相加 MOV SUM, AX MOV AX , NUM1+2 MOV BX , NUM2+2 ADC AX , BX ; 高字相加 ; 包括低字的

文档评论(0)

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

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

1亿VIP精品文档

相关文档