




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 微机CPU的指令系统,1,计算机与信息工程学院,程序示例,2,DATASEGMENT;段定义开始(DATA段) BUF1 DB 34H BUF2 DB 2AH SUM DB ? DATAENDS ;段定义结束(DATA段) CODESEGMENT;段定义开始(CODE段) ASSUME CS:CODE,DS:DATA START: MOVAX,DATA MOVDS,AX MOVAL,BUF1 ADDAL,BUF2 MOVSUM,AL INT21H CODEENDS ;段定义结束(CODE段) ENDSTART ;整个源程序结束,数据段 (数据定义),代码段 (汇编指令),第5章,3,常
2、用传送指令 加减法指令 逻辑运算和移位指令 控制转移指令 字符(串)输入输出功能调用,5.1 汇编语言指令格式,汇编语言的语句一般是由分隔符分成的三个部分组成: 指令助记符 操作数 ,操作数 ;注释 mov ax ,1000h ;对ax赋值 指令助记符可以是任何一条处理器指令 操作数的个数由对应的指令决定 助记符与操作数间由空格(/TAB)分割,操作数间由逗号分割 以分号开始的为注释内容,用以增加程序的可读性,4,5.1 汇编语言指令格式,在学习一条指令时,请同学们注意如下几个方面: 指令的功能 该指令能够实现何种操作。 指令支持的寻址方式 该指令中的操作数可以采用何种寻址方式。 指令对标志位
3、的影响 该指令执行后是否对各个标志位有影响,或者是标志位是如何影响指令执行的 。 其他方面 该指令其他需要特别注意的地方,例如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等等。,5,5.2 指令系统,指令系统就是指该计算机能够执行的全部指令的集合,每种计算机都有它支持的指令集合。 Intel 8086指令系统共有117条基本指令,按照其功能可以分为以下几大类:数据传送指令、标志位操作指令、算术运算指令、逻辑运算指令、移位操作指令、位操作指令、比较运算指令、循环指令、转移指令、条件设置字节指令与字符串操作指令等等。,6,5.2.1 数据传送指令,数据传送是计算机中最基本、最重要的一种操
4、作 传送指令也是最常使用的一类指令 传送指令把数据从一个位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位 重点掌握 MOV XCHG XLAT PUSH POP LEA,7,5.2.1 数据传送指令,1.传送指令MOV(Move Instruction) 是使用最频繁的指令,相当于高级语言中赋值语句的作用。 指令格式 : MOV op1,op2 op1 可以是寄存器或是存储器操作数 op2 可以是寄存器、存储器或是立即数,8,传送指令MOV,9,它的功能是把源操作数的值传送给目的操作数,指令执行以后目的操作数的值变化。MOV指令不影响标志位。,传送指令MOV,MOV指令的使用可以分
5、为以下4种情况: 1).寄存器与寄存器之间的数据传送 Mov AX,BX Mov CL,AL Mov DX,ES Mov DS,AX 注意的是: 不能同时为段寄存器(演示) CS不能作为目的操作数,但可以作为源操作数。 指针指令IP不能作为操作数。,10,通用寄存器到通用寄存器之间,通用寄存器与段寄存器之间,传送指令MOV,2).立即数到通用寄存器的数据传送 Mov AL,5FH Mov BX,4045 Mov CH,0AH 注意立即数不能做为源操作数,就好像在高级语言中不能给常数赋值一样(不存在3=a+1这样的语句),立即数也不能传送到段寄存器。,11,传送指令MOV,3).寄存器与存储器之
6、间的传送 Mov AL,BUF1 Mov AL,1000H Mov DI,DL Mov AX,BX+SI Mov BX+SI+100H,CL,12,buf1是符号地址,直接寻址。,直接寻址。,寄存器间接寻址。,基址加变址寻址方式。,相对基址加变址寻址方式。,传送指令MOV,4).立即数到存储器的数据传送 立即数只能作为源操作数,并需要与存储器变量类型一致。 MOV buf1,25 MOV BYTE PTR SI,40,13,传送指令MOV,使用MOV指令需要注意以下几点: 立即数只能作为源操作数,也不能能将立即数传送给段代码寄存器 通用寄存器可以与段寄存器、存储器相互传送,通用寄存器之间也可以
7、。但是段寄存器之间不能传送,CS也不能作为目的操作数,IP不参加传送。 存储器之间不能进行数据传送,需要借助通用寄存器作为中介。,14,5.2.1 数据传送指令,2.传送填充指令MOVSX/MOVZX(Move and Fill Instruction) 这一指令与MOV的功能类似,不同之处是在传送时对目的操作数进行填充,可分为符号填充(MOVSX)和零填充(MOVZX)。 指令格式: MOVSX/MOVZX Reg/Mem, Reg/Mem/Imm 符号填充(MOVSX)的填充方式是用源操作数的符号位来填充目的操作数的高位。 零填充(MOVZX) 的填充方式是用0来填充目的操作数的高位。,1
8、5,传送填充指令,例:已知(AL)=87H 指令MOVSX CX,AL和MOVZX DX,AL的执行结果是什么? MOVSX CX,AL MOVZX DX,AL,16,(CX)=0FF87H,(DX)=0087H,5.2.1 数据传送指令,3.交换指令XCHG(Exchange Instruction) 交换指令用来将源操作数和目的操作数内容交换,操作数可以是字、也可以是字节,可以在通用寄存器与通用寄存器或存储器之间对换数据,但不能在存储器与存储器之间对换数据。 指令格式: XCHG Reg, Reg/Mem,17,交换指令XCHG,18,交换指令XCHG,用交换指令实现寄存器之间的数据交换
9、mov ax, 1234h ; ax=1234h mov bx, 5678h ; bx=5678h xchg ax, bx ; ax=5678h,bx=1234h xchg ah, al ; ax=7856h 用交换指令实现寄存器与存储器之间的数据交换 xchg ax,2000h ; 也可以表达为xchg 2000h,ax xchg al,2000h ; 也可以表达为xchg 2000h,al,19,5.2.1 数据传送指令,4.取有效地址指令LEA (Load Effective Address) LEA的功能是将存储器的有效地址传递给指定寄存器,指令格式如下: LEA Reg,Mem 通常
10、用来为指针或变址寄存器BX、DI或SI等赋初值。,20,取有效地址指令LEA,例:有效地址的获取 mov bx,0400h mov si,3ch lea bx,bx+si+0f62h ; BX=0400+003c+0f62=139EH 这里BX得到的是主存单元的有效地址,不是物理地址,也不是该单元的内容。,21,5.2.1 数据传送指令,5.取段寄存器指令(Load Segment Instruction) 这组指令的功能是把内存单元的一个“低字”传给制定的16位寄存器,把随后的“高字”传给相应的段寄存器(DS,ES,SS,FS和GS)。其指令格式如下: LDS/LES/LSS /LFS/LG
11、S Reg,Mem,22,取段寄存器指令,23,取段寄存器指令,例:地址指针的传送 Mov word ptr3060h,0100h Mov word ptr3062h,1450h lds si,3060h ;ds=1450h,si=0100h les di,3060h ;es=1450h,di=0100h (讲一下书上的图5.5),24,5.2.1 数据传送指令,6.堆栈操作指令 堆栈是一种重要的数据结构,具有“先进后出”的特点,主要具有两大类操作:进栈操作和出栈操作。先来看一下堆栈的结构:,25,堆栈操作指令,进栈操作 指令格式: PUSH Reg/Mem/Imm SPSP-2 SS:SPr
12、eg/mem/seg,26,Push 7812h,PushA; 其功能是依次把AX、CX与BX等寄存器压入堆栈中。 (pushAD是其32位版本),堆栈操作指令,27,堆栈操作指令,出栈操作 指令格式: POP Reg/Mem reg/mem/segSS:SP SPSP+2,28,PopA; 其功能是依次把AX、CX与BX等弹出堆栈,与pushA对称使用。 (POPAD是其32位版本),POP ax,堆栈操作指令,29,堆栈操作指令,堆栈是系统中不可缺少的数据区域。堆栈可用来临时存放数据,以便随时恢复它们。堆栈也常用于在子程序间传递参数。堆栈还常用于子程序或中断现场的保护和恢复,30,5.2.
13、1 数据传送指令,7.转换指令XLAT 换码指令有两个隐含的操作数BX和AL, 指令格式如下: XLAT ; alds:bx+al 换码指令用于将BX指定的缓冲区中、AL指定的位移处的数据取出赋给AL。 例:将首地址为100H的表格中的3号数据取出 mov bx,100h mov al,03h xlat,31,转换指令XLAT,32,5.2.2 标志位操作指令,标志位操作指令包括两类: 一类是标志位传送(主要是对标志位的保存和恢复)。 另一类是标志位操作(直接对标志位进行置位或复位操作)。,33,标志位传送指令,LAHF ; AHFLAGS的低字节 SAHF ; FLAGS的低字节AH SAHF和LAHF是一对相反功能的指令。它们只影响标志寄存器的低8位。 PUSHF ;SPSP-2,SS:SPFLAGS POPF ;FLAGSSS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产线物料管理办法
- 分包变更管理办法
- 列车监管管理办法
- 维修间管理办法
- 交期延误管理办法
- 农场师范管理办法
- 评审件管理办法
- 初期流动管理办法
- 分行行长管理办法
- 个人备课管理办法
- 许昌市政协委员管理办法
- 社区居委会安全生产管理制度
- 连申线兴东线至海安界段航道整治工程环评资料环境影响
- 客户信息传递管理办法
- 2025至2030中国热成型钢(PHS)市场销售模式及未来投资风险评估报告
- GB/T 30099-2025实验室离心机
- 实验室留样管理制度
- 2025-2030中国阻焊油墨行业运行现状与场竞争格局分析报告
- 建筑桩基技术规范 JGJ 94-2008知识培训
- 公司电商财务管理制度
- 2025年中国铷铯及其化合物行业市场前景预测及投资价值评估分析报告
评论
0/150
提交评论