- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4课指令系统和控制器部件
为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。 例:机器指令: 0000011100100001 汇编指令: MVRR R2,R1 用汇编指令编写的程序称为汇编源程序。 高级语言 汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 (1) 用C语言实现: Main () { int a, b, sum; a=123; b=456; sum=a+b } (2)用8086汇编语言实现: a dw 123 b dw 456 sum dw ? Code segment assume CS: Code, DS:Data Main:mov ax,data mov ds,ax mov ax, a 三种语言编写程序占用字节数 例:某计算机有10条指令,它们的使用频率分别为: 0.30, 0.20, 0.16, 0.09, 0.08, 0.07, 0.04, 0.03, 0.02, 0.01。 用Huffman编码对它们的操作码进行编码,并计算平均代码长度。 一个完善的指令系统应满足如下四方面的要求: 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。 b.通过存储器的间接寻址方式 指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址,这被称为存储器间接寻址方式。 操作数 Addr1 特点: 比直接寻址灵活,并且可用指令中的短地址访问大的内存空间;取操作数需二次访问主存,降低了指令执行的速度。 OP Addr … 4)基址寻址方式 在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器的内容和指令中的地址码相加得到。 基址寄存器 加法器 操作数 存储器 OP disp … 例:disp = 18H,[BS] = 5700H 则操作数地址 = 5718H 主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。 5)变址寻址方式 操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到。 通用寄存器 加法器 存储器 操作数 OP Reg Disp … 例:Disp=18H,Reg=5,R5)=5700H 则操作数地址 = 5718H 便于对数组元素进行处理,此方式是计算机中常用的一种寻址方式。 6)块(串)寻址方式 为了对数组运算提供更好的支持,采用该种寻址方式的指令中,要对整个数组实现某种运算,只需给出数组的首地址和末地址,这条指令执行一次,可对数组的全部元素完成某种运算操作。 此方式是现代计算机中广泛采用的一种寻址方式。 7)隐含寻址方式 对于双操作数指令,如果事先约定参与运算的一个操作数固定存放在某个寄存器或某个存储单元中。指令中不直接给出某个操作数的地址,被称为隐含寻址方式。 ADD A 操作数 主存 寻址特征 A ACC 暂存 ALU 另一个操作数 隐含在 ACC 中 如 8086 MUL 指令 被乘数隐含在 AX(16位)或 AL(8位)中 MOVS 指令 源操作数的地址隐含在 SI 中 目的操作数的地址隐含在 DI 中 指令字中少了一个地址字段,可缩短指令字长。 8)立即寻址方式 所需的一个操作数在指令的地址码部分直接给出。 特点:在取指令的同时取出了操作数,不必访问主存,提高了指令的执行速度;灵活性差。 OP Num … 操作数(或指令)的地址由程序计数器PC的内容(即当前执行指令的地址)和指令的地址码相加得到。 例如:disp = 48H (PC) = 5600H 则实际地址 = disp + (PC) = 5648H 主要用于转移指令,对缩短指令长度很有用。位移量可正可负,通常用补码表示。 9)相对寻址方式 主存空间 2000 PC JMP +30 现行指令 JMP NEXT ADD AX,BX … … … 2001 2001 2031 PC在指令中不指定,是隐含的,所以可以缩短指令长度。
文档评论(0)