- 1、本文档共74页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章微处理器的指令系统资料
指令集CISC CISC 指令系统的主要特点是: ( 1) 指令系统复杂。具体表现在以下几个方面: ① 指令数多, 一般大于100 条。 ② 寻址方式多, 一般大于4 种。 ③ 指令格式多, 一般大于4 种。 ( 2) 绝大多数指令需要多个机器时钟周期方可执行完毕。 ( 3) 各种指令都可以访问存储器。 指令集RISC RISC 为使流水线高效率执行, 应具有下述特征: ( 1) 简单而统一格式的指令译码; ( 2) 大部分指令可以单周期执行完成; ( 3) 只有LOAD 和STORE 指令可以访问存储器; ( 4) 简单的寻址方式; 对比举例 泡1杯茶复杂指令集:1、去泡茶;2、哥,茶泡来了; 精简指令集:1、去;2、拿杯子;3、放茶叶;4、泡茶;5、拿来。显然复杂指令速度快效率高; 泡50杯茶复杂指令集:1、去泡茶;2、哥,茶泡来了;3、去泡茶;4、哥,茶泡来了;5、去泡茶;6、哥,茶泡来了;7、去泡茶;8、哥,茶泡来了......重复道50次。精简指令集:1、去;2、拿杯子*50,3、放茶叶*50,4、泡茶*50,5、拿来。精简指令集效率高耗能少... 标记 注释 方便程序阅读人员理解程序而增加的一些解释性语言,汇编程序对这部分内容不做任何处理 注释方式,; 作为注释开头 表达式 操作数 运算符 伪指令 指令性语句:实际上就是CPU运行的一条指令,例如ADD AL,5H 指示性语句:汇编过程中不会形成指令代码,目的是让编译程序执行某些特定的功能,这部分指令称为伪指令 伪指令 确定CPU的伪指令.586/.586P 标号赋值伪指令EQU 定义存储单元伪指令:DB,DW,DD,DQ,DT 定义存储单元类型伪指令:BYTE,WORD,DWORD 段定义伪指令:SEGMENT,ENDS,ASSUME,ORG 简约段定义伪指令:.DATA/.STACK/.CODE 过程定义伪指令:PROC,ENDP,NEAR,FAR 程序结束伪指令:END 伪指令 确定CPU的伪指令.586/.586P Pentium整个系列的CPU,每一代的指令都有所增加,所以为了使汇编语言准确运行,要求在源程序开头用伪指令表明但前程序运行环境,默认为.8086 伪指令 标号赋值伪指令EQU 为了方便程序阅读和修改,程序常使用标号来代表数据,数据地址等,EQU就是对标号进行赋值的指令 例如: 标号1 EQU 表达式(AGE EQU 22) 标号2 EQU 标号1 伪指令 定义存储单元伪指令:DB,DW,DD,DQ,DT 用来给出程序需要使用的数据,例如 CR DB 0DH BUF_DIS DB ? DONT DW 10 DUP(?) TABLE DB 00,01,02,04,05 思考:DB和EQU有区别么? 伪指令 定义存储单元类型伪指令:BYTE,WORD,DWORD 用于规定存储单元的类型,例如 MOV BYTE PTR [DI],00 MOV DWORD PTR[2000],FFFFFFFFH 伪指令 段定义伪指令:SEGMENT,ENDS,ASSUME,ORG SEGMENT,ENDS是一对指令,需要成对出现,作用是将源代码分成几个段,代码段,数据段等 ASSUME是告诉汇编程序,上述几个段,那个是代码段,那个是数据段 ORG 规定目标程序存放的偏移量,入ORG 2000,则程序会把IP设置为2000H 伪指令 简约段定义伪指令:.DATA/.STACK/.CODE 这个是上一个段定义方法的简化定义方法, 每个段开头使用上述伪指令表明即可, 注:使用简化方法是,程序开头需要增加.MODEL SMALL 伪指令 过程定义伪指令:PROC,ENDP,NEAR,FAR 这里的过程即子程序,定时方法PROC和ENDP成对出现。 NEAR,FAR:段内过程,段间过程 程序示例 .586 DATA SEGMENT DAI DB ‘INPUT STRING:$’ BUFDMA DB 80H DUP (?) DATA ENDS STACK SEGMENT ME1 DB 80H DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX ……. CODE ENDS END 程序示例 MODEL SMALL .586 .DATA DAI DB ‘INPUT STRING:$’ BUFDMA DB 80H DUP (?) .STACK ME1 DB 80H DUP (?) .CODE START: MOV
文档评论(0)