




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,2020/7/15,微机原理,南京科技大学,2012,2,2020/7/15,讲师:尹代红,制片人:尹代红,电子邮箱:3,2020/7/15,第二章寻址方式和指令系统。2.1概述2.2寻址模式2.3数据传输指令2.4算术运算指令2.5逻辑运算指令2.6字符串运算指令2.7程序控制指令4,2020/7/15,2.1概述,指令是微处理器执行某些操作的指令,微处理器所有指令的集合称为指令系统(指令集)。指令有两种书写格式:机器指令和符号指令。1.指令,机器指令的二进制数描述硬件只能识别机器指令,用机器指令编写的程序可以直接运行符号指令。用指定的助记符和指定的书写格式编写的指令与机器指令一一对应,
2、需要翻译成机器指令才能运行101100000000001 MOVAL,1,5,2020/7/15,2。程序,程序是为解决问题而编写的一系列指令。它是一个机器语言程序:一个由机器指令编写的汇编语言程序;由符号指令编写的程序;高级语言程序:由高级语言编写的程序,它基于语句而不是处理器的指令系统。汇编语言程序和高级语言程序在执行之前必须被翻译成机器语言程序。这个翻译过程被称为汇编语言程序的汇编,以及高级语言程序的编译或解释,6,2020/7/15。符号指令的编写格式为:操作码助记符操作数助记符;注释号表示内存中指令的地址,并为分支和循环提供分支目标。可选操作码助记符,如加法、MOV等。表示要由指令实
3、现的函数操作数是指令操作的对象。当一条指令需要多个操作数时,操作数用逗号分隔,目标操作数在逗号之前,源操作数在逗号之后。笔记可以增强可读性,7,2020/7/15、3。开发x86微处理器指令系统,基本指令集,8086/8088 116指令,基本指令集,增量,强度,指令,命令,集合,系统,系统,控制,控制,指令,命令,集合等。操作数可以以三种可能的方式存储:直接包含在指令中的立即寻址,包含在寄存器中的寄存器操作数的寄存器寻址,存储器中的存储器操作数(存储器操作数)的存储器寻址,9,2020/7/15,1。立即寻址操作数作为立即数直接存储在指令中,可以是字节、字、双字MOVEAX、78H MOV
4、AX、5678H MOVEAX、12345678H、10、2020/7/15、2。寄存器寻址操作数包含在指令中指定的8位、16位和32位寄存器中,如MOV C1、MOV CX、MOV ECX、EDX DX,寄存器寻址速度快,因为它不需要从内存中获取操作数,11,2020 X86系列处理器使用内存分段管理。程序员在指令中使用逻辑地址,它由两部分组成:内存单元所在段的基址:段内的偏移地址(offset)。通常,当操作系统将程序加载到内存中时,会设置段内的偏移地址。程序员在编程时主要使用段内的偏移地址,也称为有效地址(EA) MOV 3000H。全MOV :3000小时,全:称为段覆盖前缀(可选),
5、它指示处理器访问的逻辑段3000小时是段内偏移地址(有效地址),3。内存寻址(内存寻址),12,2020/7/15,段内偏移地址(有效地址)可由以下四部分组成(称为偏移地址四个元素):基本寄存器内容索引寄存器内容比例因子(0或1)置换EA=基本寄存器索引寄存器比例因子置换,16位寻址:基本寄存器:BX,BP索引寄存器:si,di比例因子:0,1置换:0,8,16位2020/7/15,直接地址寄存器间接地址基本地址索引地址加上索引地址, 偏移地址四个元素可以组合五种内存寻址模式,14,2020/7/15,直接地址指令中的操作数部分直接给出操作数的有效地址EA,操作数可以是16位或32位整数,操作
6、数默认为MOV AX,ds段中的3000H低位地址,高位地址,CS段,操作码,00H,30h,34h,12h,34h,12h,AX,DS段,50000,53000,DS,5000,0,3000 指令必须包含超过前缀MOV AX、ES:3000H、低地址、高地址、CS段、操作码、00H、30h、34h、12h、34h、12h、AX、ES段、20000、2330的段。寄存器间接寻址操作数地址的偏移量(有效地址EA)存储在寄存器中,用于16位寻址:偏移量地址放在SI、DI、BP、BX中,由SI、DI、BX间接寻址,默认操作数为MOV AX在数据段中;访问数据段由BP间接寻址,默认操作数为MOV AX
7、,BP;在不锈钢段;访问栈段的32位寻址:偏移地址放在8个32位通用寄存器中,除了ESP和EBP,默认段寄存器是ss,所有其他默认段寄存器是DSMOVEAX和ESP;访问堆栈段,17,2020/7/15、低地址、高地址、CS段、操作码、34h、12h、34h、12h、AX、ss段、70000、73000、基址(相对地址)EA=基址寄存器位移16位地址:BP,BX是基址寄存器BX,DS是缺省段寄存器BP,ss是缺省段寄存器32位地址:8个32位通用寄存器可用作基址寄存器,除ESP和EBP缺省段寄存器ss外,所有其它缺省段寄存器是DS,MOV AX,BX 24 MOV DX,Bx1500,mova
8、x,24bx movdx,1500bx,19,2020/7/15,低MOV DX,BX 1500 Let DS=7000 h BX 2000 h,DS,7000,0,2000,20,2020/7/15,索引寻址(相对寻址)索引寻址适用于一维阵列的操作元素,无比例因子EA=索引寄存器位移16位寻址:SI,DI是基址DS是默认段寄存器32位寻址:除ESP外,其他7个32位通用寄存器可用作索引寄存器,EBP默认为ss 其他默认段寄存器是DS、MOV AH、SI 5、21、2020/7/15,位移代表数组起始地址,它是不变的,索引寄存器是数组下标和变量。,(位移),阵列的索引寻址模式,单元0,单元n,
9、单元n-1,单元2,单元1,索引寄存器,MOV AX,SI 100H,22,2020/7/15,基址加索引寻址基址加索引寻址主要用于二维阵列操作,双周期无比例因子EA=基址寄存器索引寄存器位移适用于16位和32位寻址MOVAX,BX SI 1000 MOVAX,DIBP 200 MOVAX,EDX EBP 200在实模式下,该段的最大长度为64KB,因此有必要确保有效地址不超过FFFFH。练习24,2020/7/15,2.3数据传输指令,数据传输有四种类型:1 .通用传输:基本传输指令MOV堆栈操作PUSHPOP交换指令XCHG 2。累加器特殊转移:输入/输出INOUT变化代码XLAT 3。地
10、址传输泄漏4。标志转移LAHFSAHFPUSHFPOPF,25,2020/7/15,通用数据转移指令MOV目标操作数,源操作数注意:标志位在执行后不受影响,源操作数不变。1)源操作数可以是8/16位立即操作数、寄存器操作数和存储器操作数。目标操作数不允许是立即数,并且其他操作数具有相同的来源。源和目标不能同时是内存操作数。2)源和目标操作数类型必须匹配MOV字节PTR BX,12H 3)立即数MOV AX,2000 MOV DS,AX 4)所有以CS为目标的传输指令都是非法的,26,2020/7/15,XCHG目标操作数,源操作数交换指令,源和目标不能都是内存操作数。操作数不能有立即数XCHG
11、 AX,SI 0400H XCHGAX,BX XCHGAH,AL,27,2020/7/15,XLAT。标题变量名的表查找指令用于获取表中指定数字的值。表DB 30h,31h,32h,33h,34h,35h,36h,36h,35h,39h mov bx,偏移表mov al,5xlat表,AL=35H执行后,完成什么功能?2020年7月28日。堆栈操作指令将源操作数推入堆栈指令,首先调整堆栈指针(2),然后将源操作数PUSH AX PUSH SI 5 POP目标操作数推出堆栈指令,首先将堆栈的前2个字节发送到目标操作数,然后调整堆栈指针(2) POP SI 5 POP AX,注意:只能有16位通用
12、寄存器堆栈/堆栈指令PUSHF POPF 16位标志寄存器堆栈/堆栈指令,29,2020/7/15,3。目标地址转移指令LEA目标寄存器,源操作数有效地址转移指令,源操作数是内存操作数,内存单元的有效地址(而不是内容)转移到目标寄存器MOVSI。3000H LEA BX,SI 5BX3005H LDS/LES目标寄存器,源操作数指针转移指令源操作数是32位内存操作数,高位16位段寄存器低位16位目标寄存器ADDR DW 1A2BH,3C4DH LDS SI,ADDR,执行后si1a2bhds3c4dh,30,2020/7/15,4。I/O数据传输指令完成累加器和I/O端口之间的数据传输。当端口
13、号为8位(用于直接寻址)时,可以访问0255 256端口INAL,30HINAL,port。注意:当端口地址为16位(间接寻址)时,端口地址必须放在DX寄存器中。最多065535 65536端口输入A1,DX输出端口号,累加器输出30H,alotport,AL输出,AL,31,2020/7/15,2.4算术运算指令,加法,减法,乘法和除法,运算对象8/16有符号/无符号整数,BCD代码影响标志位1。加法指令加法目标操作数,源操作数源操作数目标操作数ADC目标操作数,源操作数源操作数目标操作数CF目标操作数影响6个标志位a,c,o,p,s和z INC目标操作数1目标操作数影响5个标志位a,o,p
14、,s和z,32,2020/7/15,2。减法指令,SUB目标操作数,源操作数,源操作数,源操作数,CF目标操作数,DEC目标操作数,目标操作数,目标操作数,NEG目标操作数,目标操作数,目标操作数影响A,C,O,P,S,Z6标志位化学机械抛光目标操作数,源操作数只影响标志位,不改变目标操作数,33,2020/7/15,3。乘法指令,MUL源操作数无符号乘法字节乘法:被乘数默认为AL,乘积存储在AXA LSRC字乘法中:被乘数默认为AX,乘积存储在DX/AXDX/AXAX SRCMUL源操作数有符号乘法中,34,2020/7/15。注:两个乘数都被视为符号数。使用IMUL指令MUL是直接将两个数
15、字相乘,而IMUL是乘以无符号位(负数时为补码),并将符号位(负数时为补码)加到乘积上。产品的上半部分是下半部分的符号扩展(仅符号位)。CFOF0乘积的上半部分包含结果的有效位(符号位结果)。例如,CFOF1,35,2020/7/15,如果ALB4H,BL11H。执行MULBL和IMULBL指令后,寻找该值。无符号数字有符号数字Alb4 h 18076 BL 11h 17 17 mul BL 3060(bf4h)imulbl 1292(faf 4h),学习演示,36,2020/7/15,4。除法指令,div除数无符号除法字节除法:被除数默认为AX,商存储在al,余数存储在AH AX SRCAL
16、AH字除法:被除数默认为DX/AX,商存储在AX,余数存储在DX DX/AX SRCAXDX。在计算102464=16(400小时40小时=10小时)MOVAX、400小时MOVABX和40小时DIBVX时,您是否有任何潜在的问题?IDIV除数有符号除法。当商超出范围(即除法溢出)时,它会自动产生0型DX中断?37,2020/7/15,在CBW字节被分成字的扩展字节之前,被除数应该默认为AX,如果被除数只存储在AL中,则需要从字节扩展到字。当A1中的D7=0时,AH=0。当A1中的D7=1时,那么AH=0 FFH CWD字应该在将其分成双字的扩展字之前默认为DX/AX。如果被除数只存储在A和X中,就有必要把这个词扩展为双字。D15=0时DX=0,D15=1时D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年五月份文物数字化重建模型权属处理条款
- 二零二五版房地产增资入股合作协议书
- 低价物流仓库出租合同样本
- 帷幕灌浆工程准灌证
- 入股股东转让合同样本
- 仿古瓷砖采购合同样本
- 新起点小学一年级英语教案-Unit3-Animals
- 智慧厂区方案
- 石子采购合同
- 培训机构管理制度汇编
- 政策目标确立和方案制定概述课件
- 六年级下册英语课件-Unit 4 Lesson 23 Good-bye-冀教版(共19张PPT)
- 硬笔书法全册教案共20课时
- 张波-超高温陶瓷课件
- 资源环境信息系统(gis)课件
- 特洛伊战争(英文版)
- 近代以来广州外贸产业的发展历程
- DBJ04-T 410-2021城市停车场(库)设施配置标准
- 车站主体结构模板支架专项施工方案--终稿(专家意见修改的)-副本
- 保洁岗位培训
- 丽声北极星自然拼读绘本第二级 Pad, Pad, Pad! 课件
评论
0/150
提交评论