《的指令系统一》PPT课件.ppt

上传人:sh****n 文档编号:14174931 上传时间:2020-07-09 格式:PPT 页数:54 大小:481.50KB
收藏 版权申诉 举报 下载
《的指令系统一》PPT课件.ppt_第1页
第1页 / 共54页
《的指令系统一》PPT课件.ppt_第2页
第2页 / 共54页
《的指令系统一》PPT课件.ppt_第3页
第3页 / 共54页
资源描述:

《《的指令系统一》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《的指令系统一》PPT课件.ppt(54页珍藏版)》请在装配图网上搜索。

1、第 2 章 8086的指令系统,(一),教学重点,重点掌握常用指令功能及应用 常用传送指令 加减法指令 逻辑运算和移位指令 控制转移指令 字符(串)输入输出功能调用,什么是指令系统,计算机的指令系统就是指该计算机能够执行的全部指令的集合 每种计算机都有它支持的指令集合 16位8086指令系统是Intel 80 x86系列微处理器指令系统的基础,8086指令系统概述,Intel 8086指令系统共有117条基本指令 可分成6个功能组 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理机控制类指令,如何学习,学习指令的注意事项,指令的功能该指令能够实现何种操作。通常指

2、令助记符就是指令功能的英文单词或其缩写形式 指令支持的寻址方式该指令中的操作数可以采用何种寻址方式 指令对标志的影响该指令执行后是否对各个标志位有影响,以及如何影响 其他方面该指令其他需要特别注意的地方,如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等,汇编语言指令格式,由4部分组成: 标号: 指令助记符 目的操作数,源操作数 ; 注释,标号表示该指令在主存中的逻辑地址,每个指令助记符就代表一种指令,目的和源操作数表示参与操作的对象,注释是对该指令或程序段功能的说明,教学提示,全面而准确地理解每条指令的功能和应用,是编写汇编语言程序的关键,逐个展开指令,2.1 数据传送类指令,数据传

3、送是计算机中最基本、最重要的一种操作 传送指令也是最常使用的一类指令 传送指令把数据从一个位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位 重点掌握 MOV XCHG PUSH POP LEA,2.1.1 通用数据传送指令,提供方便灵活的通用传送操作 有3条指令 MOV XCHG XLAT,MOV,XCHG,XLAT,1. 传送指令MOV(move),把一个字节或字的操作数从源地址传送至目的地址,MOV reg/mem,imm ;立即数送寄存器或主存,例题2.1,MOV reg/mem/seg,reg ;寄存器送(段)寄存器或主存,例题2.2,MOV reg/seg,mem ;主存

4、送(段)寄存器,例题2.3,MOV reg/mem,seg ;段寄存器送寄存器或主存,例题2.5,例2.1:立即数传送,mov al,4;al4,字节传送 mov cx,0ffh;cx00ffh,字传送 mov si,200h;si0200h,字传送 mov byte ptr si,0ah ;byte ptr 说明是字节操作 mov word ptr si+2,0bh ;word ptr 说明是字操作,注意立即数是字节量还是字量 明确指令是字节操作还是字操作,MOV,例2.2:寄存器传送,mov ax,bx;axbx,字传送 mov ah,al;ahal,字节传送 mov ds,ax;dsax

5、,字传送 mov bx,al;bxal,字节传送,MOV,例2.3:存储器传送,mov al,bx mov dx,bp;dxss:bp mov es,si;esds:si,不存在存储器向存储器的传送指令,MOV,例2.5:段寄存器传送,mov si,ds mov ax,es;axes mov ds,ax;dsaxes,对段寄存器的操作有一些限制,MOV,MOV指令传送功能,MOV并非任意传送,非法传送种种,两个操作数的类型不一致 例如源操作数是字节,而目的操作数是字;或相反 两个操作数不能都是存储器 传送指令很灵活,但主存之间的直接传送却不允许 段寄存器的操作有一些限制 段寄存器属专用寄存器,

6、对他们的操作能力有限,示例,示例,示例,两个操作数的类型要一致,绝大多数双操作数指令,除非特别说明,目的操作数与源操作数必须类型一致,否则为非法指令 MOV AL,050AH ;非法指令:050Ah为字,而AL为字节 寄存器有明确的字节或字类型,有寄存器参与的指令其操作数类型就是寄存器的类型 对于存储器单元与立即数同时作为操作数的情况,必须显式指明;byte ptr指示字节类型,word ptr指示字类型,两个操作数不能都是存储器,8086指令系统不允许两个操作数都是存储单元(除串操作指令),要实现这种传送,可通过寄存器间接实现 mov ax,buffer1 ;axbuffer1(将buffe

7、r1内容送ax) mov buffer2,ax ;buffer2ax ;这里buffer1和buffer2是两个字变量 ;实际表示直接寻址方式,要小心段寄存器的操作,不允许立即数传送给段寄存器 MOV DS,100H ;非法指令:立即数不能传送段寄存器 不允许直接改变CS值 MOV CS,SI;不允许使用的指令 MOV CS, AX ;CS不能用MOV指令改变 不允许段寄存器之间的直接数据传送 MOV DS,ES ;非法指令:不允许段寄存器间传送,例: 判断下列指令是否合法:,MOVDS,AX,不允许两个操作数都是存储器单元,MOVCS,AX,MOVCH,4050H,MOVDL,5BH,MOV

8、DX,5BH,MOVDX,AL,MOV VA1,VA2,MOV 45,DL,目的操作数不允许是CS段寄存器,目的操作数不允许是立即数,数据类型不匹配,数据类型不匹配,2. 交换指令XCHG(exchange),把两个地方的数据进行互换,寄存器与寄存器之间对换数据 寄存器与存储器之间对换数据 不能在存储器与存储器之间对换数据,XCHG reg,reg/mem ;reg reg/mem,例题2.7,例题2.6,例2.6:寄存器间交换,mov ax,1234h;ax=1234h mov bx,5678h;bx=5678h xchg ax,bx ;ax=5678h,bx=1234h xchg ah,a

9、l;ax=7856h,XCHG,例2.7:寄存器与存储器交换,xchg ax,2000h;字交换 ;等同于 xchg 2000h,ax xchg al,2000h ;字节交换 ;等同于 xchg 2000h,al,XCHG,换码指令执行前: 主存建立一个字节量表格,含要转换成的目的代码 表格首地址存放于BX,AL存放相对表格首的位移量 换码指令执行后: 将AL寄存器的内容转换为目标代码,3. 换码指令XLAT(translate)(了解),将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给AL,XLAT;alds:bx+al,例题2.8,课后习题2.3,例2.8:代码转换,mov b

10、x,100h mov al,03h xlat,换码指令没有显式的操作数,但使用了BX和AL;因为换码指令使用了隐含寻址方式采用默认操作数,XLAT,2.3、已知数字09对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。 请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。 leabx,table moval,8 xlat,2.1.2 堆栈操作指令,堆栈:后进先出FILO,位于堆栈段;SS段寄存器记录其段地址 堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器SP指定,堆栈的操作,

11、堆栈只有两种基本操作:进栈和出栈, 对应两条指令PUSH和POP,入栈指令 PUSH,指令格式:PUSH src,执行操作:(SP)(SP)-2 ((SP)+1,(SP))(src),功能:将指定的字数据压入栈顶,出栈指令 POP,指令格式:POP dst,执行操作: (dst) ((SP)+1,(SP)) (SP)(SP)+2,功能:将栈顶字数据弹出堆栈,堆栈的操作,* 堆栈操作必须以字为单位。 * 不影响标志位 * 不能用立即寻址方式 PUSH 1234H * DST不能是CS POP CS,例: PUSH AX POP BX,执行指令前后状态:,31,04,堆栈段,栈顶,SP,3001H

12、 3002H 3003H 3004H,1. PUSH AX,2. POP BX,3104,执行指令前:,执行指令后:,设:(AX)= 3104H (BX)= 1000H,课堂练习: 编程: (1)将100001000FH这段空间当作栈,初始栈为空; (2)设置AX=002AH,BX=002BH; (3)利用栈,交换AX和BX中的数据。,MOV AX,1000H MOV SS,AX MOV SP,0010H MOV AX,001AH MOV BX,001BH PUSH AX PUSH BX POP AX POP BX,问题:如果交换倒数二三行,程序的执行结果为?,堆栈的特点,堆栈操作的单位是字,

13、进栈和出栈只对字量 字量数据从栈顶压入和弹出时,都是低地址字节送低字节,高地址字节送高字节 堆栈操作遵循先进后出原则,但可用存储器寻址方式随机存取堆栈中的数据 堆栈常用来 临时存放数据 传递参数 保存和恢复寄存器,例题2.11,例2.11:现场保护恢复,push ax;进入子程序后 push bx push ds . pop ds;返回主程序前 pop bx pop ax,2.1.3 标志传送指令,标志寄存器传送指令用来传送标志寄存器FLAGS的内容 标志位操作指令直接对CF、DF、IF标志进行复位或置位,1. 标志寄存器传送,标志寄存器传送指令用来传送标志寄存器FLAGS的内容,方便进行对各

14、个标志位的直接操作 有2对4条指令 低8位传送:LAHF和SAHF 16位传送:PUSHF和POPF,标志低字节进出AH指令,LAHF ;AHFLAGS的低字节 LAHF指令将标志寄存器的低字节送寄存器AH SF/ZF/AF/PF/CF状态标志位分别送入AH的第7/6/4/2/0位,而AH的第5/3/1位任意,SAHF ;FLAGS的低字节AH SAHF将AH寄存器内容送FLAGS的低字节 用AH的第7/6/4/2/0位设置SF/ZF/AF/ PF/CF标志,标志寄存器进出堆栈指令,PUSHF ;SPSP2 ;SS:SPFLAGS PUSHF指令将标志寄存器的内容压入堆栈,同时栈顶指针SP减2

15、,POPF ;FLAGSSS:SP ;SPSP2 POPF指令将栈顶字单元内容送标志寄存器,同时栈顶指针SP加2,例题2.12,例2.12:置位单步标志,pushf;保存全部标志到堆栈 pop ax;堆栈中取出全部标志 or ax,0100h;设置D8=TF=1, ;ax其他位不变 push ax;将ax压入堆栈 popf;FLAGSAX ;将堆栈内容取到标志寄存器,2. 标志位操作,标志位操作指令直接对CF、DF、IF标志进行复位或置位,常用于特定的情况 对标志位进行设置的指令 CLC STC CMC CLD STD CLI STI,进位标志操作指令,用于任意设置进位标志 CLC;复位进位标

16、志:CF0 STC;置位进位标志:CF1 CMC;求反进位标志:CFCF,2.1.4 地址传送指令,地址传送指令将存储器单元的逻辑地址送至指定的寄存器 有效地址传送指令 LEA 指针传送指令 LDS和LES 注意不是获取存储器单元的内容,有效地址传送指令LEA(load EA),将存储器操作数的有效地址传送至指定的16位寄存器中,例题2.13,LEA r16,mem ;r16mem的有效地址EA,例2.13:获取有效地址,mov bx,0400h mov si,3ch lea bx,bx+si+0f62h ;BX0400h003ch0f62h139EH,获得主存单元的有效地址;不是物理地址,也

17、不是该单元的内容 可以实现计算功能,LEA,指针传送指令,LDS r16,mem ;r16mem,DSmem+2 LDS指令将主存中mem指定的字送至r16,并将mem的下一字送DS寄存器,LES r16,mem ;r16mem,ESmem+2 LES指令将主存中mem指定的字送至r16,并将mem的下一字送ES寄存器,例题2.14,例2.14:地址指针传送,mov word ptr 3060h,0100h mov word ptr 3062h,1450h les di,3060h;es=1450h,di=0100h lds si,3060h;ds=1450h,si=0100h,mem指定主存

18、的连续4个字节作为逻辑地址(32位的地址指针),送入DS:r16或ES:r16,2.1.5 输入输出指令,8086通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port)即I/O地址 8086用于寻址外设端口的地址线为16条,端口最多为21665536(64K)个,端口号为0000HFFFFH 每个端口用于传送一个字节的外设数据,输入输出寻址方式,8086的端口有64K个,无需分段,设计有两种寻址方式 直接寻址:只用于寻址00HFFH前256个端口,操作数i8表示端口号 间接寻址:可用于寻址全部64K个端口,DX寄存器的值就是端口号 大于FFH的端口只能采用间接寻址方式,输入指

19、令IN,将外设数据传送给CPU内的AL/AX,IN AL,i8 ;字节输入:ALI/O端口(i8直接寻址) IN AL,DX ;字节输入:ALI/O端口(DX间接寻址) IN AX,i8 ;字输入:AXI/O端口(i8直接寻址) IN AX,DX ;字输入:AXI/O端口(DX间接寻址),例题2.15,例2.15:输入字量,;直接寻址,字节量输入 in al,21h mov ah,al in al,20h ;直接寻址,字量输入 in ax,20h ;间接寻址,字量输入 mov dx,20h in ax,dx,IN,输出指令OUT,将CPU内的AL/AX数据传送给外设,OUT i8,AL ;字节

20、输出:I/O端口AL(i8直接寻址) OUT DX,AL ;字节输出:I/O端口AL(DX间接寻址) OUT i8,AX ;字输出:I/O端口AX(i8直接寻址) OUT DX,AX ;字输出:I/O端口AX(DX间接寻址),例题2.16,例2.16:输出字节量,;间接寻址,字节量输出 mov dx,3fch mov al,80h out dx,al,OUT,例:测试某状态寄存器(端口号27H)的第2位是否为1.,IN AL, 27H TEST AL, 00000100B JNZ ERROR ;若第2位为1,转到ERROR处理,例 Sound程序,mov dx, 100 in al, 61h and al, 11111100b sound: xor al, 2 out 61h, al mov cx, 140h wait1: loop wait1 dec dx jne sound,设备控制寄存器,端口61H,1 / 0 0,控制其它外部设备,与门,放大器,2号定时器门控,1 0,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!