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

合集下载

微机原理与应用-04 汇编语言

微机原理与应用-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

微机原理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《微机原理与汇编语言》教学大纲

《微机原理与汇编语言》课程教学大纲课程代码: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,求在各种寻址方式下源操作数的物理地址。

《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套

《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套
1.5将十进制数(123.025)10和(96.12)10转换成二进制数和十六进制数。
答:(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)
类型属性:变量的类型属性定义该变量所保留的字节数, 如BYTE(DB,1个字节长)、WORD(DW,2个字节长)、DWORD(DD, 4个字节长)、FWORD(DF,6个字节长)、QWORD(DQ,8个字节长)、 TBYTE(DT,10个字节长)。
在同一个程序中,同样的标号或变量的定义只允许出现一 次,否则汇编程序会指示出错。
第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

第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.判断以下说法是否正确,如有错,请说明原因并改正。

(1)伪指令在汇编过程中不会产生二进制代码。

(2)宏和过程的相同之处是都可用于简化源程序书写、精简目标代码。

(3)在计算机中,高级语言通常需要转换为汇编语言后才能执行。

(4)汇编语言程序上机一般包括编辑、汇编、链接和调试几个步骤。

答:(1)正确。

(2)错误。

宏不能精简目标代码。

(3)错误。

高级语言程序经编译或解释后直接转换为目标代码。

(4)正确。

2.已知数据和符号定义A1 DB ?A2 DB 8K1 EQU 100判断下列指令的正误,并说明错误指令的原因。

(1)MOV K1,AX(2)MOV A2,AH(3)MOV BX,K1MOV [BX],DX(4)CMP A1,A2(5)K1 EQU 200答:(1)错误。

K1是符号常数,在此处相当于立即数100,故不能做目的操作数。

(2)正确。

(3)正确。

(4)错误。

A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。

(5)错误。

用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

3.若数据段中有定义NUM1 EQU 23HNUM2 DW 0则指令MOV NUM2,NUM1 的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?答:指令MOV NUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。

指令执行后NUM2+1单元的内容是0。

4.设DS=6000H,BX=8432H,SS=5000H,SP=3258H,内存69632H~69635H单元的内容依次是00H、11H、22H、33H。

4字节指令CALL DWORD PTR [BX+1200H] 本身位于2000H:3250H处的双字单元中。

当8086执行该指令后转移至子程序入口时,CS、IP、SS、SP各寄存器以及栈顶2个字单元的内容分别是多少?答:执行结果为CS=3322H,IP=1100H,SS=5000H,SP=3254H,栈顶的两个字即断点地址,为2000H:3254H。

微机原理及运用第4章

微机原理及运用第4章

关系运算的操作数也必须为数字操作数。当关系成立时, 其结果为全 1;当关系不成立时,其结果为全 0。 汇编语言中的表达式不能构成单独语句, 只能是语句的 一个部分, 例如: MOVAX, BUF+2
ADDAL, VAL AND 0FH
JMPAGAIN+3 MOVBL, VB LE VA
4.1汇编语言基本概念
4.1.1汇编语言与机器语言
我们已经学过高级语言,例如BASIC语言或FORTRAN 语言,无论哪种语言,它都规定了一系列用于编写程序的语 句和应该遵循的语法规则。人们根据一种语言给定的语句及 其语法规则就可以写出程序,计算机则通过执行已编好的程 序来完成人们要求它完成的各种复杂功能。汇编语言也一样, 根据汇编语言的语句及其语法规则可以写出汇编语言程序。 但汇编语言与高级语言有较大的区别,汇编语言中的语句与 机器的种类和型号密切相关。
部分, 汇编时不形成任何目标码。注释必须以分号“;”开 头。 它可以作为语句的一个部分,也可以作为一个单独的语 句。
4.1.3汇编语言中的常数与表达式
1. 常数 常数可以分数值常数和字符串常数两类。数值常数按其 基数的不同,可以有二进制数、八进制数、十进制数、十六 进制数等几种不同的表示形式, 汇编语言中采用不同的后缀 加以区分。 B: 表示二进制数。 例如, 10110011B。
表示一条指令的这些字符常称为助记符。 我们必须指出, 采用助记符写出的程序,机器是不能直接执行的,因为上面 我们已经指出, 处理器在设计时是按二进制指令码考虑的。 所以,采用汇编语言编写的程序在执行前还必须将其“翻译” 成机器语言。通常将采用助记符指令写成的程序,称为源程 序,将它翻译成的机器语言程序称为目标程序。将汇编语言 的源程序翻译成目标程序的过程称为汇编过程或简称汇编。 汇编过程通常是由计算机完成的。它是通过执行一个专门完 成汇编的软件——称为汇编程序来实现的。既然写出的源程序 要由汇编程序将其翻译后才能执行,所以,我们编写的源程 序必须符合汇编程序的一系列要求或者规则,只有这样,你 的程序才能被正确地“翻译”。

微机原理与汇编语言

微机原理与汇编语言
教学目的
逐步熟悉和掌握汇编语言程序的格式,可以编写简单的顺序程序。
内容提要
4.1汇编程序功能
4.2伪操作
4.3汇编语言程序格式
4.4汇编语言的上机过程
教学要求
掌握:汇编语言的上机过程,汇编语言源来自序的格式掌握:各类伪指令
教学目的
掌握汇编语言源程序的循环、分支设计方法。
内容提要
5.1循环程序设计
5.2分支程序设计
注:写明各学期教学总时数及各周学时数。
掌握:通过寄存器传送、直接参数传递的参数传递方法
理解:地址表传递参数地址、堆栈传送参数或参数地址的参数传递方法
理解;子程序的嵌套与递归概念
掌握:子程序的嵌套与递归的设计方法。
教学目的
掌握高级汇编语言技术。
内容提要
7.1宏汇编
7.2重复汇编
7.3条件汇编
教学要求
理解:宏汇编的概念和作用
掌握:宏汇编的编程技术
3.开设学期:第四学期
4.学时安排:周学时3+1,总学时72
5.学分分配:3.5学分
(二)开设目的与基本要求
《汇编语言程序设计》是计算机及其应用方向专业基础课程。通过本课程的学习,使学生了解80x86计算机组织,掌握8086/8088指令系统和寻址方式,掌握汇编语言程序设计基本方法,能进行一般汇编语言程序的设计、调试。
教学目的
了解8086的寻址方式和指令系统,结合上机实践熟练掌握常用指令、寻址方式、典型程序段,为独立编写汇编源程序做准备。
内容提要
3.180x86的寻址方式
3.2程序占有的空间和执行时间
3.380x86的指令系统
教学要求
理解:指令构成,了解指令执行时间;

微机原理

微机原理
• 有效地址由基址寄存器(BX或BP)的内容加上变 址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI • 基址寄存器和变址寄存器默认的段寄存器不同, 一般以基址寄存器决定段寄存器。 • 段地址对应BX基址寄存器默认是DS,对应BP基 址寄存器默认是SS;可用段超越前缀改变。
MOV AX, [BX+SI] MOV AX, [BX][SI] MOV AX, [BP+SI]
MOV AX, BX
;AX←BX
微机原理
§ 4.2.3 存储器寻址方式
存储器段的分配: 在对存储器进行操作时,内存一般可分成4个段,分别称为代码段
、数据段、堆栈段和附加数据段,每个段存放不同性质的数据,进
行不同的操作。 代码段:存放指令。
数据段:存放程序所使用的数据。
堆栈段:程序的堆栈区(子程序调用、系统功能调用、中断处 理等操作使用,是按“先进后出”原则访问的特殊存储区域)或作 为临时数据存储区。 附加数据段:辅助的数据区。 4个逻辑段的段基址分别放在相应的代码段寄存器CS、数据段 寄存器DS、堆栈段寄存器SS和附加段寄存器ES中,由这4个段寄存 器来指明每个段在内存中的起始地址。
, 标号: 指令助记符 操作数 ;注释
(1) 标号是给该指令所在地址取的名字,必须后跟冒号 (“:”),它可以缺省,是可供选择的标识符。规则: – 标识符由字母(a~z,A~Z)、数字(0~9)或某些特殊 字符(@,-,?)组成。 – 第一个字符必须是字母(a~z,A~Z)或某些特殊的符 号(@,-,?),但“?”不能单独作标识符。
MOV AX, [SI+06H] MOV AX, 06H[SI]
微机原理
;AX←DS:[SI+06H] ;AX←DS:[SI+06H]

微机原理与接口技术 第4章课后作业答案.

微机原理与接口技术 第4章课后作业答案.
第4章 汇编语言程序设计 4.1请分别用DB 、DW 、DD伪指令写出在DATA开始的连续8个单元中依次存放数据 11H 、22H 、33H 、44H 、55H 、66H 、77H 、88H的数据定义语句. 解:DB,DW,DD伪指令分别表示定义的数据为字节类型、字类型及双字型.其定义形式为 : DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8877H DATA DD 44332211H,88776655H 4.2若程序的数据段定义如下,写出各指令语句独立执行后的结果: DSEG SEGMENT DATA1 DB 10H,20H,30H DATA2 DW 10 DUP(?) STRING DB ‘123’ DSEG ENDS (1) MOV AL,DATA1 (2) MOV BX,OFFSET DATA2 (3) LEA SI,STRING ADD DI,SI 解: (1) 取变量DATA1的值. 指令执行后,(AL)=10H. 1 (2) 变量DATA2的偏移地址. 指令执行后,(BX)=0003H.
6
4.7执行下列指令后,AX寄存器的内容是多少? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . . MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] 解:(AX)=1E00H 4.8 编写程序段,将STRING1中的最后20个字符移到STRING2中(顺序不变)。 解:首先确定STRING1中字符串的长度,因为字符串的定义要求以‘$’符号结尾, 可通过检测‘$’符确定出字符串的长度,设串长度为COUNT,则程序如下: LEA SI,STRING1 LEA DI,STRING2 ADD SI,COUNT-20 MOV CX,20 CLD REP MOVSB

微机原理第4章习题与答案

微机原理第4章习题与答案
(2)PRGM SEG
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
……
JMP GOON
答案:
(1)字节变量,范围在0~255
(2)定义段的伪指令为SEGMENT
(3)BETA必须先定义
(4)EQU不能重复定义,在下一次定义前必须用PURGE撤消
MOV BX, F1
答案:
(1)
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255;QA=255
QA1=QA GT 3000;255大于3000,命题假,QA1=0
QA2=0FFFH;QA2=0FFFH
QA3 EQU QA2 XOR 255;QA3=0FFFH⊕0FFH=0F00H
AND AX, 0FFH;AX=0045H
MOV BX, WORD PTR G1;BX=0FF20H
MOV BX, 255 AND 0FH;BX=000FH
ADD AX, OFFSET F2;AX=1245H
MOV BX, F1;BX=2211H
4.以下程序的执行结果是_______。
ADB‘1234’
BDW5 DUP(2,3 DUP(0))
CDW‘AB’,’C’,’D’
L1:MOVAL,TYPE B
MOVBL,LENGTHB
MOVAH,SIZE A
MOVBH,SIZE C
MOVCL,TYPEL1
MOVCH,SIZEB
答案:AX=0102H,BX=0205HCX=0AFFH

微机原理第四章练习题及解答

微机原理第四章练习题及解答

微机原理第四章练习题及解一:单项选择题●汇编源程序文件的扩展名是( C )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●源程序文件汇编后的目标文件的扩展名是( B )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●目标文件连接后的可执行文件的扩展名是( D )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●下列可作为标识符用的字符串是( C )。

A:MOV B:ZF C:FAH D:PTR●下列为寄存器名的字符串是( B )。

A:ZP B:BP C:AP D:CP●下列为状态标志的字符串是( A )。

A:ZP B:BF C:DF D:TF●下列为控标志的字符串是( D )。

A:ZP B:SF C:OF D:TF●下列为指令助记符的字符串是( C )。

A:ADCC B:AAAA C:SUB D:POOP●下列为运算符的字符串是( B )。

A:ADC B:PTR C:OAG D:LOOP●定义字类型的伪指令符是( B )。

A:DB B:DW C:DD D:DQ●说明字节类型的伪指令符是( C )。

A:WORD B:DWORD C:BYTE D:SHOR●返回变量段属性的伪指令符是( B )。

A:OFFSET B:SEG C:TYPE D:SIZE●定义过程结束的伪指令符是( C )。

A:END B:ENDS C:ENDP D:ENDM●下列为段定义的伪指令是( B )。

A:PROC B:SEGMENT C:ASSUME D:STRUC●下列为符号定义的伪指令是( B )。

A:ORG B:EQU C:STR D:RET二:填空题●将指令助记符翻译为指令机器码的过程称为(汇编)。

●汇编程序的功能是输入扩展名为ASM的(汇编源程序)文件,输出扩展名为OBJ的(目标代码)文件和扩展名为LST的(列表)文件。

●汇编源程序中的保留字类型有(寄存器名)、(标志名)、(指令助记符)、(伪指令符)和(运算符)。

微机原理与汇编语言复习资料

微机原理与汇编语言复习资料

微机原理与汇编语⾔复习资料1.计算机由运算器,控制器,存储器,输⼊设备,输出设备等5⼤基本部件组成。

2.冯诺依曼提出存储设计思想是:数字计算机的数制采⽤⼆进制,存储程序,程序控制。

3.计算机的基本组成框图:4.微型计算机系统的3个层次:(1)微处理器:也叫微处理机,它本⾝并不是计算机,微处理器是微型计算机的核⼼部件,⼜叫中央处理器(CPU),微处理器包括算术逻辑部件,控制部件和寄存器组3个基本部分;(2)微型计算机:简称微机,是指以CPU为核⼼,并配以存储器(ROM和RAM),输⼊输出接⼝电路,系统总线及相应的外部设备⽽构成的完整的,可独⽴⼯作的计算机。

(3)微型计算机系统:是以微型计算机为核⼼,再配以相应的外围设备,电源,辅助电路和控制微型计算机⼯作的软件⽽构成的完整的计算机系统。

(4)三者的关系:密切的相互依存关系。

4.机器字长:指计算机能同时进⾏多少位的⼆进制数运算。

5.操作系统:是系统软件中最重要的部分,功能是对计算机系统的全部硬件和软件资源进⾏统⼀管理、统⼀调度、统⼀分配。

6.存储程序⼯作原理(存储程序、程序控制)(1)计算机系统由运算器、控制器、存储器、输⼊设备、输出设备组成,并规定了他们的功能(2)程序和数据在计算机中⽤⼆进制数表⽰(3)计算机的⼯作过程是由存储程序控制的7.⼀个字节等于(8)个⼆进制位,1KB=1024字节。

8.在计算机内部,⼀切信息的存取、处理与传送均采⽤——⼆进制9.⼀个完整的计算机应包括——硬件系统和软件系统10.微型计算机硬件系统的性能主要取决于——微处理器11.微处理器的数据基本单位为字。

⼀个字的长度通常为——16位⼆进制。

12.计算机字长所取决的是——数据总线宽度。

13.8086的内部结构从功能上分成两个单元1.总线接⼝单元BIU:管理8086与系统总线的接⼝;负责CPU对存储器和外设进⾏访问2.执⾏单元EU:负责指令的译码、执⾏和数据的运算两个单元相互独⽴,分别完成各⾃操作,还可以并⾏执⾏,实现指令预取(指令读取和执⾏的流⽔线操作)14.8088有8个通⽤的16位寄存器(1)数据寄存器:累加器AX;基址寄存器BX;计数寄存器CX;数据寄存器DX;(2)变址寄存器:源变址寄存器SI;⽬的变址寄存器DI;(3)指针寄存器:堆栈指针SP;基址指针BP;(4)专⽤寄存器:指令指针IP;FR标志寄存器FR;(5)段寄存器:代码段寄存器CS;数据段寄存器DS;堆栈段寄存器SS;附加段寄存ES15.ALE(地址所存允许信号)输出、三态、⾼电平有效;ALE引脚⾼有效时,表⽰复⽤引脚:AD7 ~ AD0和A19/S6 ~ A16/S3正在传送地址信息;由于地址信息在这些复⽤引脚上出现的时间很短暂,所以系统可以利⽤ALE引脚将地址锁存起来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 的 指 令 系 统
相关文档
最新文档