




已阅读5页,还剩145页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指令是计算机用于控制每个部件调节操作的指令,微处理器可以执行的指令集,与微处理器紧密连接,每个微处理器有不同的指令系统,三章指令系统,1,3.18086指令系统概述,计算机的操作是运行程序,程序由存储在内存中的指令序列组成。微处理器效率软件的发展需要对每个指令的寻址方式(AddressingMode)相当熟悉。机器语言命令由二进制代码组成。指令语句通常由操作数和操作数(OperatingCode data)组成。2.汇编语言助记指令写入的默认格式为(标签):操作数(操作数)(;注释),其中opcode是命令语句中不可缺少的一部分。带括号的项目是可选的,如果有此项目,则不能添加括号。多个操作数以“,”分隔。操作码和操作数必须用空格分隔。助记符命令格式,3,opcode表示易于记忆的助记符(通常为英文单词缩写),opcode表示计算机执行的操作。操作数可以表示参与操作的数目本身,也可以指定操作数的地址。在8086/8088系统中,一个指令的操作数可以是双操作数(源操作数和目标操作数),也可以是单个操作数,有些指令可能没有操作数或隐式操作数。80386/80486系统中的命令有多个操作数、4,操作数主要分为立即操作数、常量和固定数字操作数三类。寄存器操作数寄存器操作数存储在CPU的寄存器之一中。存储操作数存储操作数存储在内存的数据区域中。5,3.2寻址方法,通过指令正确地寻址操作数。查找带有操作数的地址的方法称为寻址方法。在80X86系统中,寻址方法通常分为两种类型:查找操作数的地址(数据寻址)。寻找要执行的下一个指令的另一个地址,即在程序传输或子程序调用中称为程序传输地址地址的目标地址或门户地址。6,3.2.1数据寻址方法,此部分的寻址方法通常使用MOVDST作为源操作数,使用srcsrcsrcsrcsrcsrc作为源操作数,在命令执行过程中保留原始值。DST是目标操作数,不保留原始对象,MOV指令完成将数据从源操作数复制到目标操作数的功能。7,3.2.1数据的寻址方式,1 .即时寻址操作数包含在脚本中,并由命令给出。汇编语言可以通过多种方式立即说明计数。立即操作数可以是常量,如果操作数以字母开头,则汇编程序必须在操作数之前添加0。即时寻址通常用于向寄存器赋值,仅适用于源操作数数字段,而不适用于源操作数和意图操作数长度必须匹配的目标操作数段。8,MOVAL,100命令执行后,(AL)=64HMOVCL,01001100B命令执行后,(CL)=4CHMOVAX,1234H命令执行后,(AX)=,3.2.1数据寻址,10,3.2.1数据寻址,11,3.2.1数据寻址,2。寄存器寻址(RegisterAddressing)寄存器寻址是最常见的数据寻址方法之一,命令指定寄存器编号,操作数保存在命令中指定的CPU内部寄存器中。可用于寄存器寻址的是通用寄存器。寄存器寻址不需要访问内存或使用总线周期,操作在CPU内部进行,从而提高了计算速度。12,MOVAX,BX执行命令之前,(AX)=5678H,(BX)=1234h;执行命令后,(AX)=1234H,(BX)=1234H。除了上述两种寻址方法外,以下各种寻址方法的操作数位于代码段以外的存储库中,寻址方法以其他方式获取操作数的偏移地址-有效地址EA(EffectiveAddress)。,3.2.1数据寻址,13,3.2.1数据寻址,3 .直接寻址(DirectAddressing)通过指令直接指定操作数的有效地址EA,操作数本身通常存储在数据段中,默认段寄存器是DS。操作数有效地址格式数字或符号,或符号MOVAX,2040H运行结果(AX)=6A4BH注意:此命令不会立即将数字2040H发送到AX,而是将有效地址为2040H的存储设备的内容发送到AX。14,3.2.1数据的寻址方式,15,汇编语言指令中可以使用符号地址代替数字地址:MOVAX,table;或MOVAX、TABLE;这两者是相同的。其中TABLE是存储操作数单位的符号地址。要直接寻址由其他段寄存器显示的存储库,必须在命令之前使用前缀表示段寄存器名称。MOVAX,es:2000h;将ES部分的2000H和2001H两个单元的内容发送到AX。3.2.1数据寻址,16,3.2.1数据寻址,4 .寄存器间接寻址操作数的有效地址保存在默认地址寄存器或地址更改寄存器中,操作数保存在内存中。可用于16位寄存器间接寻址的寄存器是默认寄存器BX、BP和地址更改寄存器SI、DI。如果使用BP,则默认段寄存器为SS;如果使用其他寄存器,则默认段寄存器为DS。操作数有效地址格式为间接寻址寄存器。寻址寄存器用方括号括起来。17,MOVBX,BP执行命令之前,(BP)=4000H,执行结果:(BX)=50A0H。3.2.1数据寻址方法、18,3.2.1数据寻址方法、寄存器间接寻址方法可用于表处理,执行命令后,只要修改寄存器内容,就可以删除表中的以下条目:19,3.2.1数据的寻址方式,5 .寄存器相对寻址(RegisterRelativeAddressing)操作数的有效地址是命令中规定的间接寻址寄存器的内容和命令中指定的位移之和。操作数存储在存储中。操作数有效地址格式为位移量间接寻址寄存器或位移量间接寻址寄存器,20,MOVAX,TABSI TAB为16位符号地址,其值为3030h (SI)=2000H,默认段寄存器为DS,则ea=tab将表中的第一个地址设置为偏移,然后修改间接寄存器值以访问表中的所有元素。3.2.1数据寻址,23,3.2.1数据寻址,6 .默认寻址(basedindexeda寻址)操作数的有效地址是默认地址寄存器和地址更改寄存器的内容之和,操作数本身位于存储单元中。操作数有效地址格式为:默认地址寄存器 地址更改寄存器,24,MOVAX,BXSI如果(BX)=0200H,(SI)=0010H,(DS),3.2.1数据寻址方法,25,主地址寻址功能同样适用于数组或表处理,第一地址存储在主地址寄存器中,寻址寄存器访问数组的每个元素。两种寄存器都可以修改,因此相对寻址方法比寄存器更灵活。需要注意的是,这两个寄存器不能都是主地址寄存器,也不能都是地址更改寄存器。3.2.1数据的寻址方式,26,7。默认寻址相对寻址操作数的有效地址是指令中规定的一个默认地址寄存器和一个寻址寄存器内容以及指令中指定的位移量的总和。位移量默认地址寄存器 地址更改寄存器可以用各种形式的组合来表示。寻址寄存器必须放在方括号中。3.2.1数据的寻址方式,对于27,MOVAX,TABBXSI(BX)=1000H,(SI)=2000H,TAB=0150H,EA=,3.2.1数据的寻址方式,28,3.2.1数据的寻址方式,29,默认寻址相对寻址通常用于访问二维数组。位移是阵列的起始位址。主存储器和地址寄存器分别存储行和列的值,可以使用相对主寻址直接访问二维数组中指定的元素。3.2.1数据的寻址方式,30,8。隐式寻址(ConcealedAddressing)某些命令的脚本不包含表示操作数地址的部分,opcode本身隐式表示操作数的地址。范例:LODSB;表示将SI的内容作为AL发送,SI指针加1。以下任务命令部分详细介绍了此命令。3.2.1数据寻址方法,31,9。I/O端口寻址I/O端口寻址提供了两种定位I/O设备端口地址的方法:(1)直接端口寻址端口地址为INAL(AXorEAX)、port8,OUTport8,AL(AXorEAX),例如INAL,21H。表示将数据从I/O地址为21H的端口读取到AL。3.2.1数据寻址,32,(2)间接端口寻址端口地址为16位,规定保存在寄存器DX中。格式如下:INAL(AXorEAX)、dx;OUTDX,AL(AXorEAX)示例:INAL,DX。此命令表示将数据从DX寄存器内容指定的端口读取到AL。3.2.1数据的寻址方式,33,3.2.2程序发送寻址方式,CPU在执行命令时将命令按顺序存储在存储器中,程序的执行顺序由CS和IP的内容决定。程序作为传输或调用指令运行时,必须脱离正常程序序列,发送到指定的指令地址,程序传输和调用指令可以通过更改IP和CS内容来更改程序执行顺序。34,根据与当前程序地址相关的程序以前地址的关系,可以分为段内和段外;根据传输地址是否出现在直接命令中,它分为直接、间接等四种程序传输寻址方法:段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址。3.2.2程序传输寻址方式,35,1。段内直接寻址(intregmentsdirect寻址)段内直接寻址也称为相对寻址。脚本包含一个位移量disp,传输的有效地址为EA=(IP) disp。位移为8位时,称为短距离转移。位移为16位时,称为短距离移动。JMPNEARPTR符号地址JMPSHORT符号地址,3.2.2程序传输地址寻址方法,36,2。段内间接寻址程序发送的有效地址是寄存器或存储设备的内容。结果转换的有效地址用于替换IP寄存器的内容。JMP寄存器JMP存储设备上面的两种寻址方法仅修改IP的内容,因此,此寻址方法只能在段内执行程序传输。3.2.2程序传输寻址方法,37,JMPBX (BX)=1020H,运行命令后,如果(IP)=1020HJMPTABLEBXSI,则(DS)=20000段间直接寻址命令直接提供程序传输的段地址和偏移地址,以替换当前CS和IP。指令的程序集语言格式是JMPFARPTR符号地址。FARPTR表示用于跨段传输的运算符,3.2.2程序发送寻址方法,39,4 .段间间接寻址程序发送的有效地址是一个存储单元中连续4字节的内容。该存储设备的内容可以从数据寻址方法中立即获得,除了计数和寄存器方法之外,还可以将寻址存储设备的前双字节内容发送到IP,然后将下一双字节内容发送到CS。说明为JMPDWORDPTR存储设备格式,3.2.2程序传输寻址方法,40,JMPDWORDPTRBX情况下(BX)=1034H,从1034H开始的4个连续存储设备内容为12H,34H,56H,77h,3.2.2程序传输寻址方法,41,3.38086命令系统,命令系统表示微处理器可以执行的所有命令集合。每个微处理器的指令系统都不同,这是由微处理器设计时决定的。在80X86系列CPU上,该命令系统的系统代码完全自下而上兼容。80X86命令系统可以按功能分为以下9类:42、(1)数据传输类命令;(2)算术运算命令;(3)逻辑运算和移位类命令;(4)位操作说明;(5)串行操作说明;(六)传输类命令控制;(七)处理器控制命令;(八)高级语言说明;(9)基于OS的命令。3.38086命令系统,43,表示一些常用符号。Src源操作数dst目标操作数data立即计数disp8位或16位位移量存储设备的内容mem内存操作数opr表示操作数reg寄存器计数移动数,可以是1或CL,3.38086命令系统,44,3.3.1数据传输类指令,数据传输类指令在寄存器或内存、CPU内部寄存器之间数据传输类命令不影响标志寄存器的标志位,标志位传输命令除外。这些命令分为四组命令:公共数据传输、地址传输、标志传输和输入输出。45,1。常用数据传输命令常用数据传输命令包括最基本的传输命令、堆栈命令、数据交换命令和更改代码命令。(1)数据传输命令基本传输命令包括MOV、MOVSX和MOVZX。其中MOVSX、MOVZX仅在386及其后续型号中可用。3.3.1数据传输类命令,46,传输命令(move)3354 mov命令格式:MOVDST,SRC命令功能:将源操作数SRC的内容传递给目标操作数DST,然后完成字节、单词或双词的传输。源操作数可以是常规寄存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 介绍某种药讲课件
- 景区暑期安全管理制度
- 公司指纹打卡机管理制度
- 日间病房流程管理制度
- 腹腔镜下全子宫切除术护理查房讲课件
- 知错就改主题班会课件
- 电工技术课件第12章 继电接触器控制系统
- 高中数学教学小感悟
- 计算机应用基础教程课件第7章 常用工具软件
- 层次分析法讲课件
- SF-36生活质量调查表(SF-36-含评分细则)
- 畜禽生产概论-形考任务3-国开(HB)-参考资料
- 人类普遍交往与世界历史的形成发展
- 2024年济源市六年级下学期调研语文试卷含答案
- 隐龙山墓园规划方案
- 矿灯管理工培训课件
- 村医培训死因监测课件
- 玻璃幕墙清洗施工方案
- 管理授权手册7.28
- lcd制造工艺流程
- 2024届北京市石景山区七年级生物第二学期期末学业水平测试模拟试题含解析
评论
0/150
提交评论