第4章(2)微机原理与汇编语言.
微机原理与应用-04 汇编语言

例:把片外RAM2200H单元中的数送入片内70H单元中。
BEGIN:MOV
MOV MOVX MOV
13
DPTR,#2200H ;(DPTR)=2200H
R0,#70H A,@DPTR @R0,A
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
1、标号字段
后必跟“ :”号; 首字符必是字母,由1~8个ASCII 码 字符组成; 同一标号在一个程序中只能定义一次; 不能使用指令助记符、伪指令、寄存器 的符号名称; 一条语句的标号可有可无,取决于本程 序的其他语句是否访问该条语句。
《微机原理及应用》课件
(2) 机器汇编
汇编语言 源程序
汇编
机器语言 目标程序
汇编程序
用机器汇编,方便快捷,并能在汇 编过程中发现语法错误。
8
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
Medwin汇编环境示例
9
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
《微机原理及应用》课件
2. 汇编语言
面向机器的符号语言,指令用助记符表示; 指令直接访问CPU的寄存器、存储单元和 I/O端口,响应速度快,程序的存储空间 利用较高; 汇编语言是面向机器的语言,因此使用者 必须对机器的硬件结构和指令系统比较熟 悉。
5
南京航空航天大学机电学院机械电子工程系 2005年
33
南京航空航天大学机电学院机械电子工程系 2005年
《微机原理及应用》课件
(2)子程序的参数传递
a. 利用寄存器(R0~R7和A)传递参数
微机原理与接口技术-汇编语言程序设计

4.1.2 8086汇编语言源程序的格式
源程序的一般格式为: NAME1 SEGMENT
语句 语句 NAME1 ENDS NAME2 SEGMENT 语句 语句 NAME2 ENDS END <标号>
第四章 汇编语言 程序设计
4.2 语句的格式
第四章 汇编语言 程序设计
汇编语句分为指令语句和伪指令语句两类,一般都由分 隔符分成的 4 个部分组成。
HLT
;然后停机
NOT DONE : IN AL, PORT_VAL ;未超过时,输入下一字节
ADD SUM, AL
;与以前的结果累加
JMP CODE ENDS ;代码段结束
END START
;整个程序结束
可以看到,8086汇编的一个语句行是由4个部分组成,即
标号 操作码 操作数 ;注释(或名字)
普通高等学校计算机教育“十三五”
微机原理与接口技术
内容导航
CONTENTS
4.1 汇编语言的格式 4.2 语句的格式 4.3 伪指令语句 4.4 指令语句 4.5 汇编语言程序设计及举例
4.1 汇编语言的格式
4.1.1 8086汇编语言的一个例子
第四章 汇编语言 程序设计
MY_DATA SEGMENT ;定义数据段
SUM DB ?
;为符号 SUM 保留一个字节
MY_DATA ENDS
;定义数据段结束
MY_CODE SEGMENT ;定义码段
ASSUME CS :MY_CODE, DS :MY_DATA
;规定 CS 和 DS 的内容
PORT_VA1 EQU 3
;端口的符号名
START :MOV AX, MY_DATA ;DS 初始化为 MY_DATA
微机原理4_2

Y
P1
标号1:
N Y P2
条件2成立 ?
标号2:
…
N
条件n成立 ?
Y
Pn
标号n:
N
Pn+1
标号n+Βιβλιοθήκη :TEST/CMP指令(测试条件1) Jx 标号1 ;不满足转标号1 处理体P1… JMP 标号n+1 标号1:TEST/CMP指令(测试条件2) Jx 标号2 ;不满足转标号2 处理体P2… JMP 标号n+1 标号2:TEST/CMP指令(测试条件3) Jx 标号3 ;不满足转标号3 处理体P3… JMP 标号n+1 标号3:TEST/CMP指令(测试条件4) … … 标号n+1:(公共出口)
Y
Z <= 1
结束
EXT:
MOV Z, AL RET
30
程 序 ;-- 数据段定义 ---------------------------------SEGMENT X DB 242 Y DB 67 Z DB ? DAT ENDS ;-- 代码段定义 ---------------------------------COD SEGMENT ASSUME DS: DAT, CS: COD MAIN PROC FAR PUSH DS ; 保存返回地址 SUB AX, AX PUSH AX MOV AX, DAT MOV DS, AX ; 初始化DS
3.源程序的基本结构:顺序、分支、循环、过程
14
如何绘制程序框图(流程图)?
(1)用方框表示工作框,框中用简明语言 标明要完成的功能
(2) 用菱形框表示判断框
?
Y
15
N
框中标明比较、判断和条件
030731004《微机原理与汇编语言》教学大纲

《微机原理与汇编语言》课程教学大纲课程代码:030731004课程英文名称:Computer Principles and Assembly Language课程总学时: 56 讲课: 44 实验:12适用专业:电子信息科学与技术大纲编写(修订)时间:2010一、大纲使用说明(一)、课程地位及教学目标本课程是电子信息科学与技术专业的必修的专业基础课,主要任务是使学生掌握8088/8086系列汇编程序设计和PC机硬件原理知识,并具有一定的应用能力。
(二)、知识,能力及技能方面的基本要求通过本课程学习,要求学生从理论上和实践上掌握计算机的基本组成、工作原理、硬件的连接等内容,会编写较简单的汇编语言程序,并能利用PC总线进行I/O扩展及编程,建立微机系统的整体概念,使学生具有应用微机系统软硬件开发的初步能力,为后续课程单片机、数字系统设计、ARM等打下理论基础。
(三)、实施说明由于本课程是主要专业基础课,对先修课基础要求较高,在讲授具体内容时,应注重基础原理内容和实际应用介绍,使学生在掌握基本原理的基础上,具有一定解决实际问题的能力。
要提高学生的基本素质和应用能力,必须改变传统的教学手段。
要利用多媒体授课;增加自学讨论部分,使学生从被动吸收知识的状态下,转化到主动索取知识的状态中来。
同时,应不断增加新知识。
总学时:56学时;讲课:44学时;实验:12学时。
(四)、对习题,实验,实践环节的要求本大纲立足于实施素质教育为目标培养的。
习题从教材中选取,按时交作业,编程习题尽量上机验证。
实验强调应用性,学生应独立完成,实验前预习实验内容。
(五)、对先修课程的要求1.计算机导论课程中的计算机数的编码,二、十六进制,BCD,ASCII码;2.数字电子技术课程中的逻辑电路基础。
(六)、考核方式及成绩评定方式1.考核方式:考试。
2.考试方法:闭卷。
3.课程总成绩:最终理论考试与平时考核(包括实验、期中考试、作业、出勤、提问等)的总和。
微机原理---汇编语言习题(完整参考答案)

微机原理---汇编语⾔习题(完整参考答案)MIS 硬件原理复习内容1.数的不同进制转换,原码、反码、补码转码,BCD码2.掌握D触发器逻辑3.D触发器组成的电路:卡诺图及简化、真值表、波形图、状态转换图4.三态门、总线结构5.存储器扩展⽅法:地址总线的作⽤,内存分页技术,地址译码⽅法,译码器6.86X 系列CPU 结构框图7.8086寄存器组,寻址⽅式8.指令,伪指令9.数据定义,完整程序结构10.汇编语⾔上机及调试过程1.分别指出下列指令中的源操作数和⽬的操作数的寻址⽅式:(1)MOV SI, 200(2)MOV CX, DA TA[SI](3)ADD AX, [BX][DI](4)AND AX, BX(5)PUSHF2.指出指令MOV AX, 2010H 和MOV AX, DS:[2010H]的区别3.写出以下指令中内存操作数的所在地址(1)MOV AL, [BX+5](2)MOV [BP+5], 5(3)INC BYTE PTR[SI+3](4)MOV DL, ES:[BX+DI](5)MOV BX, [BX+SI+2]4.判断下列指令书写是否正确(1)MOV DS, 0100H (错)(2)MOV AL, BX (错)(3)MOV BL, F5H (错)(4)MOV DX, 2000H (对)(5)INC [BX] (对)(6)MOV 5, AL (错)(7)MOV [BX], [SI] (错)5.若SP=2000H, AX=3355H, BX=4466H, 试指出执⾏下列指令后有关寄存器的值:(1)PUSH AX;执⾏后AX=? SP=? (AX=3355H SP=1FFEH)(2)PUSH AXPUSH BXPOP DX;执⾏后AX=? DX=? SP=?(AX=3355H DX=4466H SP=1FFEH)6.假设想从100中减去AL中的内容,⽤SUB 100, AL是否正确?如果不对,应⽤什么⽅法?7.有如下程序,当AL某位为何值时,可将程序转⾄AGIN2语句。
《微机原理及汇编语言》习题

第一章思考题与习题1.1计算机的发展到目前为止经历了几个时代?每个时代的特点是什么?1.2计算机的特点表现在哪些方面?简述计算机的应用领域。
1.3冯·诺依曼型计算机的结构由哪些部分组成?各部分的功能是什么?分析其中数据信息和控制信息的流向。
1.4计算机中的CPU由哪些部件组成?简述各部分的功能。
1.5微型计算机系统主要由哪些部分组成?各部分的主要功能和特点是什么?1.6微型计算机的分类方法有哪些?1.7 什么是微型计算机的系统总线?定性说明微处理器三大总线的作用。
1.8 微型计算机的总线标准有哪些?怎样合理地加以选择?1.9 简述微型计算机的主要应用方向及其应用特点。
1.10 奔腾系列微处理器有哪些特点?与其它微处理器相比有哪些改进?1.11 解释并区别下列名词术语的含义。
(1)微处理器、微计算机、微计算机系统(2)字节、字、字长、主频、访存空间、基本指令执行时间、指令数(3)硬件和软件(4)RAM和ROM(5)机器语言、汇编语言、高级语言、操作系统、语言处理程序、应用软件(6)CMOS、BIOS、Cache芯片1.12 微型计算机系统软件的主要特点是什么?它包括哪些内容?1.12 定性比较微型计算机的内存储器和外存储器的特点及组成情况。
第二章思考题与习题2.1 简述计算机中“数”和“码”的区别,计算机中常用的数制和码制有哪些?2.2 将下列十进制数分别转化为二进制数、八进制数、十六进制数和压缩BCD数。
(1)125.74 (2)513.85 (3)742.24(4)69.357 (5)158.625 (6)781.6972.3 将下列二进制数分别转化为十进制数、八进制数和十六进制数。
(1)101011.101 (2)110110.1101(3)1001.11001 (4)100111.01012.4 将下列十六进制数分别转化为二进制数、八进制数、十进制数和压缩BCD数。
(1)5A.26 (2)143.B5(3)6AB.24 (4)E2F3.2C2.5 根据ASCII码的表示,查表写出下列字符的ASCII码。
微机原理课后习题答案
第1章计算机基础知识三、简答题1.微型计算机的基本组成?答:以微型计算机为主体,配上相应的系统软件、应用软件和外部设备之后,组成微型计算机系统。
(微型计算机+软件系统,也可)2.简述冯.诺依曼型计算机基本思想?答:冯.诺依曼型计算机是由运算器,控制器,存储器,输入设备和输出设备组成的。
其中,运算器是对信息进行加工和运算的部件;控制器是整个计算机的控制中心,所以数值计算和信息的输入,输出都有是在控制器的统一指挥下进行的;存储器是用来存放数据和程序的部件,它由许多存储单元组成,每一个存储单元可以存放一个字节;输入设备是把人们编写好的程序和数据送入到计算机内部;输出设备是把运算结果告知用户。
(写出主要内容,即可)3.什么是微型计算机?答:微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。
(只要答出五大组成部分即可)4.什么是溢出?答:溢出就是在运算中,使用已经确定的二进制位数,没有办法表示运算结果。
二、简答题1.在内部结构中,微处理器主要有哪些功能部件组成?答:1) 算术逻辑部件 2) 累加器和通用寄存器组3) 程序计数器 4) 时序和控制部件(意思相近即可)2. 微处理器一般应具有哪些功能?答:1)可以进行算术和逻辑运算 2)可保存少量数据3)能对指令进行译码并完成规定的操作 4)能和存储器、外部设备交换数据5)提供整个系统所需的定时和控制 6)可以响应其他部件发来的中断请求3. 什么是总线周期?答:CPU使用总线完成一次存储器或I/O接口的存取所用的时间,称为总线周期,一个基本的总线周期包含4个T状态,分别称为T1、T2、T3、T4。
(意思相近即可)?2.中断服务程序结束时,。
RET应该可以使中断服务程序返回主程序,但因为RETF是子程序返回指令,它只从堆栈中恢复CS和IP,而不能使状态字PSW得以恢复,所以不能使断点完全恢复,对源程序的继续执行造成不良影响。
(回答可以返回2分,出现的问题3分,意思相近即可)3.写出把首地址为 BLOCK1) MOV BX,OFFSET BLOCK+6 2) LEA BX,BLOCK 3) LEA BX,BLOCKMOV DX,[BX] MOV DX,[BX+12] MOV SI,12MOV DX,[BX+SI]4. 设BX=134AH,BP=1580H,DI=0528H,SI=0234H,DS=3200H,SS=5100H,求在各种寻址方式下源操作数的物理地址。
《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套
答:(123.025)10=(11111011.00000110)2=(7B.06)16
1.6将十六进制数(3E.7)16和(A4.B)16转换成十进制数。
答:(3E.7)16=(62.4375)10
(A4.B)16=(164.6875)10
[-Y]补=[[Y]补]求补=[[-0001111B]补]求补=[11110001B]求补=00001111B。
[X-Y]补=[X]补+[-Y]补=00100101B+00001111B=0011 0100B
习
2.18086/8088 CPU分为哪两大功能部件?其各自的主要功能是什么?8086/8088 CPU中有哪些寄存器?各有什么用途?
微型计算机由中央处理器、存储器、输入/件系统和软件系统两部分组成。也就是在微型计算机的外面加上电源和外部设备,然后配上系统软件和应用软件构成的系统。
1.3什么是系统总线?按照信号的种类不同可以把系统总线分成哪三类?它们各有什么特点?
答:连接微处理器与存储器、输入输出接口,用以构成完整的微型计算机的总线称为系统总线。系统总线分为数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。
[-78]原=1100 1110B[-78]反=1011 0001B[-78]补=1011 0010B
1.9设[X]补=11001010B,[Y]补=01001010B,求它们的真值。
答:X的真值是-54,Y的真值是74。
1.10设X=+37,Y=-15,求[X-Y]补。
答:[X]补=[+37]补=[+100101B]补=00100101B。
微机原理与接口技术(第三版) 龚尚福章 (4)
在同一个程序中,同样的标号或变量的定义只允许出现一 次,否则汇编程序会指示出错。
第4章 汇编语言程序设计
4.2.1 定义符号的伪指令 有时程序中多次出现同一个表达式,为方便起见,可以用
赋值伪操作给表达式赋予一个名字。 1. 等值伪指令EQU 格式: <符号名> EQU <表达式> 功能:给符号名定义一个值,赋予一个符号名、表达式或
助记符。
第4章 汇编语言程序设计
此后,程序中凡需要用到该表达式之处,就可以用表达式 名来代替了。可见,EQU的引入提高了程序的可读性,也使其 更加易于修改。上式中的表达式可以是任何有效的操作数格式, 可以是任何可以求出常数值的表达式,也可以是任何有效的助 记符。举例如下:
第4章 汇编语言程序设计
(3) 符号常数。用符号名来代替的常数就是符号常数,如 COUNT EQU 3或COUNT=3定义后COUNT就是一个符号常数,与数 值常数3等价。
第4章 汇编语言程序设计
2) 表达式
由运算对象和运算符组成的合法式子就是表达式。表达式
分为数值表达式、关系表达式、逻辑表达式和地址表达式等。
类型(TYPE)属性:类型表示该标号所代表的指令的转移范 围,分为NEAR和FAR两种。如果为NEAR型,则标号只能在段内 引用;如果为FAR型,则标号可以在段间引用。
第4章 汇编语言程序设计
(2) 变量。变量在数据段、附加数据段或堆栈段中定义, 后面不跟冒号。它也可以用LABEL或EQU伪操作来定义。变量经 常在操作数字段出现。它也有段、偏移及类型三种属性。
微机原理与接口技术习题答案4
第4章汇编语言程序设计1.已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。
解:BUF DB "BONJOUR_BELLE"BUFR DB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,[SI]MOV [DI],ALINC SIDEC DILOOP L12.利用移位、传送和相加指令实现AX的内容扩大10倍。
解:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。
XOR DX,DXSHL AX, 1RCL DX, 1MOV BX,AXMOV CX,DXSHL AX, 1RCL DX, 1SHL AX, 1RCL DX, 1ADD AX, BXADC DX, CX3.在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。
解:V AR DW 1236,-432,3900XOR SI,,SIMOV AX,V AR[SI]CMP AX, V AR[SI+2]JAE L1XCHG AX, V AR[SI+2]L1:CMP AX, V AR[SI+4]JAE L2XCHG AX, V AR[SI+4]L2:MOV V AR[SI], AXMOV AX,V AR[SI+2]CMP AX, V AR[SI+4]JAE L3XCHG AX, V AR[SI+4]L3:MOV V AR[SI+2], AX4.编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
第 四 章
8 0 8 6 的 指 令 系 统
例 4.9 将 一 个 16 位 无 符 号 数 除 以 512 。 该 数 原 来 存 放 在 以 DIVIDAND为首地址的两个连续的存储单元中。
MOV AX,DIVIDAND
MOV CL,9 SHR AX,CL HLT
15
第 四 章
8 0 8 6 的 指 令 系 统
②操作数左移一位,相当于乘2(对有符号数同理, 只要OF=0,结果就对)。
11
第 四 章
8 0 8 6 的 指 令 系 统
③操作数逻辑右移(SHR)一位,相当于无符号 数除以2;操作数算术右移(SAR)一位,相当于有符 号数除以2。 指令举例 SHL AX,1 SAR BYTE PTR[BP+SI],1 SHR BH,1 SAR AL,3 × MOV CL,3 SAR AL,CL
8 0 8 6 的 指 令 系 统
分别写出下列程序片段的执行结果: 4、CLC (AL)=27H (AL)=4EH
MOV AL,93H
RCR AL,1 49H A4H
RCR AL,1
(AL)=E4H
MOV AL,93H
RCL AL,1 (AL)=26H 19
位操作目录
第 四 章
8 0 8 6 的 指 令 系 统
4.3.5 控制转移类指令 1.转移指令 1) 无条件转移指令 2) 条件转移指令 2. 循环控制指令 3. 子程序调用及返回指令 4. 中断控制指令 4.3.6 处理器控制指令 系统功能调用
2.4节 目录
20
第 四 章
2.4.1 无条件转移指令(1)
8 0 8 6 的 指 令 系 统
1) 无条件转移指令(JMP) (1).段内转移· 直接寻址 JMP SHORT LABEL;IP←IP+8位偏移量 JMP NEAR PTR LABEL; IP←IP+16位偏移量 注释:①指令中“LABEL”称为“标号”,是某一条指 令的名字,其物理意义为指令在内存中的偏移地址。 ②段内:不改变段寄存器(在当前代码段内),只 改变指令指针寄存器;直接寻址:汇编指令中直接给出 了转移目标的地址,但从指令的操作来说,应属相对寻 址。
17
第 四 章
8 0 8 6 的 指 令 系 统
1.小循环移位指令ROL、ROR ROL reg/mem,1/CL ;左移 ROR reg/mem,1/CL ;右移 2.大循环移位指令RCL、RCR RCL reg/mem,1/CL ;左移 RCR reg/mem,1/CL ;右移 例1. 将DX,AX中的32位数左移一位。
SHL AX,1
DX
循环移位指令(2)(end)
演示 演示
演示 演示
AX
RCL DX,1
移位指令和循环移位指令结合,可实现32位数乘2除2。
18
课堂练习
1、MOV AL,93H ROL AL,1 ROL AL,1 2、MOV CL,2 MOV AL,93H ROR AL,CL 3、CLC
第 四 章
MOV AX,FACTOR SHL AX,1 ;(AX)←被乘数 (设(AX)=1234H) ;(AX)=FACTOR2
MOV
SHL SHL ADD HLT
BX,AX
AX,1 AX,1 AX,BX
;暂存BX
;(AX)=FACTOR4 ;(AX)=FACTOR8 ;(AX)=FACTOR10
以上程序的执行时间大约需 26个时钟。如用乘法指令编程,执行时间将超过 130个时钟。
3.异或运算指令XOR XOR 注释:指令格式、标志设置同AND指令。
“异或”操作的特点与XOR指令的主要作用 (X 0=X) (X 1=X) 对特定位“求反” (X X=0) 将寄存器清0,影响标示位(SF、ZF、PF, CF=OF=0)
例:XOR AL,0FH;AL高4位不变,低4位求反 XOR CL,55H;CL偶数位求反,奇数位不变 XOR AX,AX ;将AX置0,CF=OF=0 XOR BX,BX ;将BX置0,CF=OF=0
10
第 四 章
移位指令(3)
8 0 8 6 的 指 令 系 统
注 释 ①标志设置 AF:对AF无定义; CF:按移入的值或为0或为1; 根据移位后的结果设置SF、ZF、PF; OF:当移动1位时,移位后如果符号位(最高位)发 生变化(比较移位前后),则OF=1,符号位不发生变化, 则OF=0,移位次数大于1时,OF不定。
OR
“或”操作的特点与OR指令的主要作用 (X∨0=X) (X∨1=1) 使某些位置1 (X∨X=X) 影响标示位(SF、ZF、PF,CF=OF=0)
例:OR BL,0F0H;使BL高4位置1,低4位不变
OR AX,8080H
OR BL,BL ;清除CF、OF 或 设置标志
3
第 四 章
8 0 8 6 的 指 令 系 统
共四条指令,分成逻辑左移、算术左移、逻辑右移 和算术右移,其中两条左移指令对应同一条机器指令, 所以,从机器指令的角度来说,移位指令只有三条。
SHL/SAL
SHR 符号位不变 SAR
CF
0
MSB MSB
MSB
LSB LSB
LSB
0
CF CF
9
第 四 章
移位指令(2)
8 0 8 6 的 指 令 系 统
第 四 章
8 0 8 6 的 指 令 系 统
位操作指令 1、逻辑运算指令 AND/OR/XOR/NOT/TEST 2、移位指令 SHL/SHR/SAL/SAR 3、循环移位指令 ROL/ROR/RCL/RCR
2.3节 目录 2.3.1--2. 3.3(位)
1
第 四 章
2.3.1 逻辑运算指令(1)
21
第 四 章
. . .
8 0 8 6 的 指 令 系 统
JMTONE
JMTONE+2
IP NEXT
例: JMTONE: JMP NEXT
EBH 偏移量02H 24 7F 34 7F
. . .
JMTONE+2:AND AL,7FH
代码段
NEXT:
XOR AL,7FH
位移量 (8位)
13F2:0005 EB02
JMP
0009
13F2:0007 247F
13F2:0009 347F
22
AND AL,7F
XOR AL,7F
第 四 章
8 0 8 6 的 指 令 系 统
③短转移的转移范围:相对于JMP的下一条指令,
转移范围为-128~+127;相对于JMP指令,转移范围 为-126~+129;近转移:相对于JMP的下一条指令,转 移范围为-32768~+32767(-32765~32770)。 指令举例: JMP SHORT L_PRO1 ;短转移,目标指令为L_PRO1 JMP NEAR PTR L_PRO2
24
第 四 章
无条件转移指令(3)
1.左移指令(逻辑左移、算术左移:一条指令) SHL reg/mem,1/CL;操作数左移1位或CL规定的 ;位数,最低位补0,最高位进CF。 演示 SAL reg/mem, 1/CL;同SHL 2.右移指令(逻辑右移 SHR;算术右移 SAR) SHR reg/mem,1/CL;操作数右移1位或CL规定的 演示 ;位数,最高位补0,最低位进CF。 SAR reg/mem,1/CL;操作数右移1位或CL规定的 演示 ;位数,最高位不变,最低位进CF。
4
第 四 章
8 0 8 6 的 指 令 系 统
4. 测试指令TEST
逻辑运算指令(2)
TEST
注释:指令格式及运算均与AND指令相同,但是不保留运算 结果,即不影响目的操作数,只根据运算结果设置标志且 CF=OF=0 。 测试指令TEST的作用:不改变操作数,测试操作数或
操作数的指定位。例如: IN AL,P两例中SHORT和NEAR可不加。
短转移的转移范围
23
第 四 章
无条件转移指令(2)
8 0 8 6 的 指 令 系 统
(2). 段内转移· 间接寻址 JMP r16/m16;IP←r16 或 IP←m16 指令举例 JMP SI ; IP←SI,通过寄存器间接给出指令偏移地址。 JMP BX ; IP←BX JMP WORD PTR[BX] ;通过存储器间接给出指令的 偏移地址,而存储器寻址方式为寄存器BX间接寻址。 JMP WORD PTR[BP+DI+20H]
13
第 四 章
8 0 8 6 的 指 令 系 统
用乘法指令编程: -a 138B:0100 mov ax,1234(mov ax,factor) 138B:0103 mov bx,000a 138B:0106 mul bx 138B:0108 -g=0100 0108 AX=B608 BX=000A CX=0000 DX=0000
移位指令(4)(end)
12
第 四 章
8 0 8 6 的 指 令 系 统
例4.8 将一个16位无符号数乘以10。该数原来存放在以FACTOR 为首地址的两个连续的存储单元中(低位在前,高位在后)。
因 为 FACTOR10=(FACTOR8)+(FACTOR2) , 故 可 用 左 移 指 令实现以上乘法运算。编程如下:
注释:不影响任何标志。 例:MOV AX,3080H
NOT AX
(AX)= ? 综上所述,五条逻辑操作指令中,只有NOT指令不影响任 何标志,其它四条指令(AND、OR、XOR、TEST)都对标志 位有影响,且CF=OF=0都成立。
6
第 四 章
8 0 8 6 的 指 令 系 统