电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章 汇编语言程序设计

261页
  • 卖家[上传人]:E****
  • 文档编号:89508646
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:1.17MB
  • / 261 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第2章 汇编语言程序设计,2.1 指令与寻址 2.2 8086 CPU指令系统 2.3 汇编语言程序设计方法,2.1 指令与寻址,2.1.1 指令的概念,指令(Instruction):指示计算机执行某种操作的命令,指令在未执行前存放在内存中,CPU取出指令后,再进行译码,转换为相应的控制信号,以实现数据在运算器、寄存器、主存之间的流动。指令由操作码和地址码两部分组成。,操作码:由若干个二进制位编码组成,表示该指令的操作性质,操作码部分又称为操作码字段。,地址码:表示该指令需要处理的具体数据或数据所在地址,一条指令中可以有一到二个地址码,对应的指令也被称一地址、二地址指令。,2.1.2 寻址方式,CPU执行的指令中,操作数可直接写在指令中,或存放在寄存器中,或由存储单元指定,如何通过指令确定操作数实际地址的过程就是寻址。,8086CPU主要包括下列寻址方式: 1. 立即寻址方式 2. 寄存器寻址方式 3. 直接寻址方式 4. 寄存器间接寻址方式 5. 寄存器相对寻址方式 6. 基址变址寻址方式 7. 相对基址变址寻址方式,2.1.2 寻址方式,1. 立即寻址方式,定义:将操作数直接写在

      2、指令中,紧跟在操作码后面,成为指令代码的一部分,这种操作数称为立即数,相应的寻址方式称为立即寻址。,说明:立即数可以是一个字节,也可以是一个字。若是一个字,它的高位字节存放在较高地址中,低位字节存放在较低字节中。,例2-1 立即寻址方式举例,MOV BX, 2050H 在下图中,BBH是指令的操作码,2050H为立即数,它是指令的一个组成部分,该指令执行后,(BX)=2050H。,2.1.2 寻址方式,特点:操作数在CPU内的某个寄存器中,参与操作的寄存器由指令中指出。由于操作数在CPU内部,所以这类指令执行起来速度比较快。 对于16位操作数,可用寄存器有:AX、BX、CX、DX、SI、DI、SP和BP等。 对于8位操作数,可用寄存器有:AH、AL、BH、BL、CH、CL、DH和DL。,2. 寄存器寻址方式,例2-2寄存器寻址方式举例,MOV BX, AX 该指令为数据传送指令,功能是将AX中的内容放入BX寄存器中。 若指令执行前,(AX)=1234H,(BX)=3080H, 则指令执行后,BX的内容成了1234H,而AX的内容不变。,2.1.2 寻址方式,直接将有效地址(偏移地址)写

      3、在指令的操作码以后,使它成为指令的一部分。根据8086 CPU的规定,偏移地址长度应是16位,即由两个字节组成。,3. 直接寻址方式,例2-3直接寻址方式举例,MOV AX, 8700H 第二操作数是直接寻址方式,缺省段寄存器是DS。,若(DS)=2000H,源操作数物理地址是:20000H+8700H=28700H。,由于是字操作指令,操作结果是将28700H和28701H两个单元的内容分别存入AL和AH。,例2-4 用符号表示直接地址举例,MOV AX ,DATA MOV AX ,DATA MOV AX ,DATA+1 MOV AX ,DATA+1 MOV AX ,DATA1,段跨越,在指令中指定其它段寄存器。 如:MOV BL , ES:4300H 这条指令中,就将段寄存器指定为ES,这种做法称为段跨越。,2.1.2 寻址方式,指令的操作数在存储器中,其有效地址存放在BX、BP或变址寄存器SI、DI中。,4. 寄存器间接寻址方式,物理地址=(DS)左移4位(BX)(或SI、DI中的一个) 物理地址=(SS) 左移4位(BP),例2-5 寄存器间接寻址方式举例,指令 MOV AX

      4、, BX 设:(DS)=2000H,(BX)=3000H 则物理地址=20000H+3000H=23000H 寄存器间接寻址也可以采用段跨越的方式,指定该指令适用的段寄存器。 如:MOV AX , ES:BX 指令中将段寄存器改为ES。 这种寻址方式可以用于连续数据(如表格、字符串)处理,执行完一条指令后,只需修改寄存器的内容就可以指向下一个数据。,2.1.2 寻址方式,操作数的有效地址是由基址或变址寄存器的内容加上指令中给出的位移量(8位或16位)得到的。使用段寄存器的情况也与寄存器间接寻址一样,即SI 、DI和BX用DS段寄存器,而BP则用SS段寄存器。寄存器相对寻址方式也可以使用段跨越方法,选用CS、ES或SS作为段寄存器。,5. 寄存器相对寻址方式,例2-6 寄存器相对寻址方式举例,例:MOV AX,DATA+SI 其中位移量DATA是个16位长的符号地址。 指令也可以写成: MOV AX , DATA SI 或 MOV AX ,DATASI 设:(DS)=2000H,(SI)=1000H,DATA =3000H。 有效地址为(SI)+ DATA =4000H。 物理地址=20

      5、000H+1000H+3000H=24000H。,2.1.2 寻址方式,有效地址由一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容之和组成。这两个寄存器都在指令中被指定。,6.基址变址寻址方式,物理地址=(DS)左移4位(BX)(SI/DI) 物理地址=(SS) 左移4位(BP)(SI/DI),例2-7 基址变址寻址方式举例,例: MOV AX , BXDI MOV AX , BX+DI 设:(DS)=F000H,(BX)=1000H,(DI)=0004H,则: EA=1000H+0004H=1004H。 物理地址=F0000H+1004H=F1004H。 基址变址寻址时也可以用段跨越,形式上与前面一样。,2.1.2 寻址方式,有效地址由一个基址寄存器和一个变址寄存器的内容以及8位或16位的位移量相加得到。,7.相对基址变址寻址方式,几种用法: MOV AX,BX+SI+n MOV AX,nBXSI MOV AX,BP+SI+n MOV AX,nBPSI,物理地址=(DS)左移4位(BX)(SI/DI)8位或16位位移量 物理地址=(SS) 左移4位(BP)(SI/DI

      6、)8位或16位位移量,例2-8 相对基址变址寻址方式举例,例: MOV AX , STRINGBXSI 设:(DS)=F000H,(BX)=1000H,(SI)=0400H,STRING=0200H。则: 有效地址=1000H+0400H+0200H=1600H, 物理地址=F0000H+1600H=F1600H。,寻址方式的小结,从表中可以看出,操作数可以是立即数、寄存器和存储器中的数据,存储器寻址方式是最灵活的,其有效地址由基址寄存器(BX、BP)、变址寄存器(SI、DI)和位移量中的任意一项、二项或三项组合构成的,但其中BX和BP、SI和DI不能同时出现在同一有效地址的构成中。,2.2 8086 CPU指令系统,8086 CPU的指令系统按照功能可以分为:,数据传送指令 算术运算指令 逻辑运算指令 串处理指令 控制转移指令 处理机控制指令。,2.2.1 数据传送指令,数据传送指令用于实现CPU的内部寄存器之间、CPU和存储器之间以及CPU和I/O端口之间的数据传送。 这是使用频率最高的一类指令,包括: 通用传送指令 累加器专用传送指令 地址传送指令 标志传送指令 这一类指令除SA

      7、HF和POPF指令对标志位有影响外,其余均不影响。,2.2.1 数据传送指令,通用数据传送指令包括: MOV指令; 入栈指令; 出栈指令;,1.通用数据传送指令,2.2.1 数据传送指令,(1)传送指令MOV 格式:MOV DST , SRC 功能:(DST)(SRC) 其中的DST(Destination)表示目的操作数,SRC(Source)表示源操作数。,1.通用数据传送指令,MOV指令传送规则,立即数只能作源操作数,而且立即数不能直接送段寄存器; 存储器与通用寄存器、段寄存器(CS除外)之间可以相互传送数据; 通用寄存器与段寄存器(CS除外)之间可以相互传送数据; 各通用寄存器之间可以相互传送数据。,MOV指令常用格式,将立即数E的ASCII码送入AL中,将符号地址DATA的存储器内容送入BX,将立即数3455H送入DATA指定的存储单元,将SS: (BP)(SI)DATA对应的存储器内容送AX,常用的MOV指令传送格式如下: MOV AL , E ; MOV DATA , 3455H ; MOV BX , DATA ; MOV AX , DATABPSI ;,2.2.1 数据

      8、传送指令,入栈指令格式:PUSH SRC 指令执行的操作为:(SP)(SP)-2; (SP+1),(SP)(SRC) 出栈指令格式:POP DST 指令执行的操作为:(DST)(SP)+1,(SP); (SP)(SP)+2 堆栈是计算机中用以存储数据的一种特殊结构存储器,用以暂时保存寄存器或存储单元的内容。,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,2.2.1 数据传送指令,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,堆栈的组织,2.2.1 数据传送指令,PUSH指令举例 设,(SS)=2000H,(SP)=1884H,则,栈顶地址:21884H。 执行PUSH AX指令后,栈顶地址为:(SP)-2,即:21882H。 如果AX=3045H,栈中的内容应为: (21883H)=30H;(21882H)=45H。,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,2.2.1 数据传送指令,POP指令举例 继续上面的例子,执行POP AX后, (AX)=3045H, 栈顶:21884H,即(SP)=1884H。,1.通用数据传送指令,(2)堆栈操作指令

      9、PUSH与POP,2.2.1 数据传送指令,例2-9利用堆栈保护与恢复寄存器内容,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,PUSH DS PUSH AX ;其间程序用到DS和AX寄存器 POP AX POP DS 编程时,通常按照对称的次序执行一系列入栈和出栈指令。对整个程序而言,有一个入栈操作,就有一个出栈操作,2.2.1 数据传送指令,1.通用数据传送指令,(3)交换指令XCHG,格式:XCHG OPR1,OPR2 功能:(OPR1)(OPR2) 说明:指令中的OPR(OPeRand)表示操作数,它们可以是存储器的内容,也可以是寄存器内容,既可以是字节交换也可以是字交换。 交换规则: 操作数可以是存储器内容,也可以是寄存器内容,可字节交换,也可字交换。 参加交换的两个操作数,必须有一个在寄存器中。 段寄存器内容不能交换 指令执行不影响标志位,例2-10交换指令举例,指令 XCHG AX , BX+DI 设执行前,(AX)=2739H, (DS)=2000H,(BX)=3000H,(DI)=1300H 第二操作数的有效地址为:20000H+3000H+1300H=24300H 如果(24300H)=00H,(24301H)=45H 则指令执行以后,(AX)=4500H,(24300H)=39H,(24301H)=27H。,2.2.1 数据传送指令,累加器专用传送指令主要包括: 端口输入指令IN 端口输出指令OUT 换码指令XLAT。,2.累加器专用传送指令,端口的概念,外设与CPU之间的数据传送也可以在指令控制下进行操作,这种指令称为输入、输出指令。因为一个系统中所用的外设通常不止一个,所以输入输出指令应指定进行数据传送的外设地址,通常称它们为端口地址。,在CPU内部能与端口传送数据的只有累加器AX或AL,其它寄存器一律不能直接与外设进行数据传送。,8086 CPU有20条地址线,所以它的存储器空间为1MB。当指令对端口地址进行寻址时,这20条地址线中只有16条起作用,也

      《微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章 汇编语言程序设计》由会员E****分享,可在线阅读,更多相关《微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章 汇编语言程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.