第三章1 单片机-汇编语言程序设计

合集下载

第3章80C51单片机汇编语言概述

第3章80C51单片机汇编语言概述

30H R0
R0~R7、A、B(AB形式) E8H MOV A,R0
操作数 在R0
和DPTR
RAM
特点: 传送和执行速度快
30H
ACC
ROM
SFR
2019/12/16
7
二、 直接寻址
操作码后字节存放的是操作数的地址
寻址空间: 片内RAM低128字节 SFR(符号形式)
【例】若(50H)=3AH , 执行MOV A,50H后,(A)=3AH
3.3.1 状态控制伪指令
伪指令,也叫汇编命令。仅对汇编过程进行指示 伪指令无对应的单片机可执行代码
一 起始地址设定伪指令ORG
ORG 表达式 表达式通常为十六进制地址,例:
ORG 8000H START:MOV A,#30H
……
ORG可多次使用,但地址值的顺序要由小到大顺序设置
二 结束汇编伪指令END
MOV @R0,A ;(R0)←A MOV @R0,#55H ;(R0)←#55H MOV @R0,55H ;(R0)←(55H)
【例3-10】执行指令 MOV R6,#50H 后,(R6)= 50H
【例3-11】若(R1)=50H,(50H)=18H,执行指令 MOV 40H,@R1 后,(40H)=18H
单字节指令(49条
) 8位编码仅为操作码 位号 字节 如:INC A 编码为:
76543210 opcode
0 0 0 0 0 1 0 0 即:04H
8位编码含操作码和寄存器编码 位号 7 6 5 4 3 2 1 0
如:MOV A,R0 编码为:
字节 opcode r r r
1 1 1 0 1 0 0 0 即:E8H
以direct为目的,例如:

CH3 MCS-51单片机指令系统-1 单片机优秀课件

CH3 MCS-51单片机指令系统-1 单片机优秀课件
邮箱!
2020/7/3
§3-3 寻址方式
寻址方式:寻找操作数存放单元的地址的方式。 1、立即寻址 1)定义
操作数在指令中直接给出,通常把出现在指令中的 操作数称之为立即数,因此就把这种寻址方式称之为 立即寻址。 2)举例
8位立即数操作:MOV A,#data 1620/7/3
MCS-51指令格式: [标号:] [操作码][第一操作数][,第二操作数][;注释]
LOOP: MOV A,#40H ;取参数
§3-2 指令格式
助记符举例:
MOV __ move
传送
XCH __ exchange
交换
ANL __ and logic
与逻辑运算
XRL __ exclusive or logic 异或运算
CH3 MCS-51单片机指令系统及汇编程序设计
内容提要: §3-1 指令系统简介 §3-2 指令格式 §3-3 寻址方式 §3-4 指令系统 §3-5 汇编语言程序设计 CH3 习题课
2020/7/3
2020/7/3
§3-2 指令格式
指令 = 操作码 + 操作数 操作码:表示了该指令所能执行的操作功能。 操作数:表示参加操作的数的本身或操作数所在的地址。
MUL __ multiply
乘法
RR __ rotate right
右循环
SJMP __ short jump
短跳转
RET __ return
子程序返回
§3-2 指令格式
操作数的表示形式: (1)无操作数或操作数隐藏在操作码中
如:NOP RET
(2)只有一个操作数 如:INC A DEC A
(3)有两个操作数 如:MOV A, #00H

第3章 指令系统与汇编程序

第3章  指令系统与汇编程序

数据传送指令
1.以累加器A为目的操作数的指令 (4条) 2.以寄存器Rn为目的操作数的指令(3条) 3.以直接地址为目的操作数的指令(5条)
4.以间接地址为目的操作数的指令(3条)
5.十六位数据传送指令(1条)
6.查表指令(2条)
7.累加器A与片外RAM传送指令(4条) 8.栈操作指令(二条) 9.交换指令(5条)
7)位寻址
• 位寻址:采用位寻址方式的指令的操作数是8 位二进制数中的某一位,指令中给出的是位地 址。位地址在指令中用bit表示。 例如:CLR bit。 • 位地址的表示方法: (1)直接使用位地址,如D3H; (2)特殊功能寄存器名+位号,如 PSW.3; (3)字节地址+位号,如 20H.3; (4)位符号地址,即某些SFR的位地址,如 TR0,表定时器T0的启动位。
(direct)→(Ri)
MOV @Ri, #data;
0111 011i
#data→(Ri)
MOV指令在片内存储器的操作功能如图3.2-1示
@Ri
direct
Rn
#data
A
5、 十六位数据传送指令(1条)
汇编指令格式 机器码格式 操作 #data16→DPTR 注释 将16位立即数传送到DPTR 中
汇编指令格式 机器码格式 操作 注释
MOVC A,@A+DPTR; 1001 0011
((A)+(DPTR))→A 将程序存储器内容传送到 A中(远程查表)
先(PC)+1→PC ((A)+(PC))→A 将程序存储器内容传送到 A中(进程查表)
MOVC A,@A+PC;
1000 0011
A寄存器

专题四 MCS-51指令系统-第三章 单片机的指令系统

专题四 MCS-51指令系统-第三章 单片机的指令系统

8、指令字节数和机器周期数
第三章 单片机的指令系统
是必须掌握的内容。 Ø 一台计算机所有指令的集合, 称为该计算机的指令系统。 Ø 各种计算机都有专用的指令系统。
Ø 本章主要介绍单片机的寻址方式及指令系统,
学时分配:2学时 1—53+97+98+99 2学时 54—96 100
第三章 单片机的指令系统 • 3.1 MCS-51 指令系统概述

按指令字长分类
按指令执行时间分类
3.2 寻址方式
• 寻址方式:7种
– – – – – – – – – 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 变址间接寻址 相对寻址 位寻址 寻址方式与寻址空间 MCS-51单片机的两个突出特点
寄存器寻址——操作数存放在寄存器中
寄存器为 MOV A,R0 MOV R0,#01001111B R0~R7,A,DPTR,C SETB RS0 MOV R3,#56H
目的寻址为直接寻址
2) 20H ~2FH 可位寻址区的寻址方式
字节寻址方式: 直接寻址 direct
寄存器间接寻址@R0,@R1
位寻址: bit 直接寻址
例: MOV 26H,C ; 位寻址 (26H)1位
MOV 26H,A ;字节寻址(26H)8位
3) 30H ~7FH 数据缓冲区的寻址方式
字节寻址方式: 直接寻址 direct
MOV A,#23H
PUSH ACC
;
A寄存器寻址
POP
0E0H
;直接寻址
4、可做片内RAM的指针有:
R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组

汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。

〔解答〕CPU:包括运算器、控制器和寄存器组。

运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。

存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。

外部设备:实现人机交换和机间的通信。

〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。

〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。

辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。

RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。

存储器由大量存储单元组成。

为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。

KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。

〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。

〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。

MCS-51 汇编语言程序设计

MCS-51 汇编语言程序设计

1. 分支程序设计
结构特点:不一定按指令的先后顺序依次运
行程序,程序的流向有两个或两个以上分支, 根据指定条件选择程序的流向。
P3.4=0? N
点亮所有二极管
Y
二极管交叉点亮
2. 分支程序的典型实例

实例:已知30H单元中有一变量X,要求编写 一程序按下述要求给Y赋值,结果存入31H单 元。
3. 8051汇编指令格式中,地址和数据的区别符号为( )。 A. 冒号 B. 分号 C. 逗号 D. 井号
4. 散转指令是单片机指令系统中专为散转操作提供的无条件 转移指令,指令格式如下: A. JMP @A+DPTR B. LJMP 标号 C. AJMP 标号 D. SJMP 标号
5. MCS-51系列单片机存储器结构的特点之一是存在着四种 物理存储空间,即片内RAM、片外RAM、片内ROM和片外ROM, 不同的物理存储空间之间的数据传送一般以( )作为数据传 输的中心。 A. 累加器A B. PSW C. PC D. RAM 6.分析下面程序段,累加器 A 中的内容为() 。 ORG 0000H MOV 30H,#45H MOV R0,#30H MOV A,#30H XCHD A,@R0 SJMP $ END A. 45H B. 35H C. 30H D. 34H
例4.6:编程实现P1口连接的8个LED显示方式如 下:从P1.0到P1.7的顺序,依次点亮其连接 的LED。


16位地址数 DPTR
+
ቤተ መጻሕፍቲ ባይዱ
A
PC
例: 根据R7的内容,转向各自对应的操作程
序 (R7= 0,转入OPR0;R7= 1,转入OPR1…R7= n,转入OPRn)

汇编语言(微机)第三章

21
汇编语言源程序的格式
一般情况下,定位类型、组合类型和类别说明可以 不用。 注意:SEGMENT和ENDS语句必须成对使用。 例:定义一数据段DATA
DATA SEGMENT A DB '1234' B DW 12H
DATA ENDS
22
汇编语言源程序的格式
(2)偏移地址定位语句 ORG 格式:ORG 数值表达式 功能:指定在它之后的程序段或数据块所存放的起始地 址的偏移量。
SUB1: ?
RESU: ?

31
汇编语言源程序的格式
④ 用DUP重复因子初始化一个数据区
格式:N DUP (表达式)
?、数值、
数值表达式
重复次数 重复装入的内容
字符等
例1: DA1 DB 2 DUP(0) DA2 DB 2 DUP(‘AB’) DA3 DW 2 DUP(1)
DA1
00
00
DA2
41
LOP: ADD AL,[BX] ADC AH,0 INC BX LOOP LOP MOV [DI] ,AX MOV AH ,4CH INT 21H
CODE ENDS END START
9
汇编语言源程序的格式
汇编语言源程序的格式
二、指令性语句 [标号:] 操作码 [操作数] [;注释项]
操作码:指明操作的性质,说明计算机要执行的具体操 作。用助记符表示。
第三章:8086汇编语言程序设计
主讲教师:范新民
整理ppt
1
8086汇编语言程序设计
1 3.2.1 汇编语言源程序的格式 2 3.2.2 常量、标识符和表达式 3 3.2.3 指示性语句 4 3.2.4 指令性语句 5 3.2.5 宏指令

汇编语言程序设计


…… 跳转到出口处end
……
casen:
跳转到出口处end ……
(执行条件n成立的语句)
end 分支结束出口
图9.13 汇编语言多重分支方第式14页
2021/12/8
下面我们用相应的例子来详细的说明这两种分支结构。
例 阶跃函数
说明:这是一个典型的双分支结构,输入值大于等于0时则返回1,输入值小于0时返 回0。r1>=0?r1=0r1=1退出图9.14 阶跃函数流程图NY
//与0比较 //大于等于0则跳转到非负数处理 //小于0则返回0 //跳转到程序结束处
//大于0,则返回1
第16页
2021/12/8
3、循环程序设计
(1) 循环程序的结构形式
循环程序可以有两种结构形式,一种是WHILE_DO结构 形式;另一种是DO_UNTIL结构形式。如图9.16所示.
初始化
初始化
入口参数:R1;(有符号数) 出口参数:R1
流程图如图9.14所示。
N
Y
R1>=0 ?
r1=0
r1=1
退出
图9.14 阶跃函数流程图
第15页
2021/12/8
程序的代码如下: .PUBLIC F_Step; .CODE F_Step: .proc CMP R1,0; JGE ?negtive; R1 = 0; JMP ?Step_end; ?negtive: R1 = 1; ?Step_end: RETF; .ENDP
1.4 嵌套与递归
1、 子程序的嵌套
子程序嵌套就是指子程序调用子程序。其中嵌套的层数称为嵌套深度。图9.27表
示了三重嵌套的过程。
SUB1
主 程 序

汇编语言程序设计(钱晓捷)课后答案.pdf

汇编语言程序设计(第二版) 钱晓捷习题答案第二章(01)2.1(1)AX=1200h(2)AX=0100h(3)AX=4C2Ah(4)AX=3412h(5)AX=4C2Ah(6)AX=7856h(7)AX=65B7h2.2(1) 两操作数类型不匹配(2) IP指令指针禁止用户访问(3) 立即数不允许传给段寄存器(4) 段寄存器之间不允许传送(5) 两操作数类型不匹配(6) 目的操作数应为[ BP ](7) 源操作数应为[BX+DI](8) 立即数不能作目的操作数2.3lea bx,table ;获取table的首地址,BX=200Hmov al,8 ;传送欲转换的数字,AL=8xlat ;转换为格雷码,AL=12H2.4堆栈是一种按“先进后出”原则存取数据的存储区域。

堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。

2.5mov ax,8057hpush axmov ax,0f79hpush axpop bx ;bx=0f79hpop [bx] ;DS:[0f79h]=8057h2.6AL=89h CF ZF SF OF PFAL=12h 1 0 0 1 1AL=0afh 0 0 1 0 1AL=0afh 1 0 1 0 1AL=00h 0 1 0 0 1AL=0ffh 0 0 1 0 1AL=00h 0 1 0 0 12.7 W=X+Y+24-Z2.8(1)ADD DX,BX(2)ADD AL,[BX+SI](3)ADD [BX+0B2H],CX(4)ADD WORD PTR [0520H],3412H(5)ADD AL,0A0H2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,Dmov ax,X ;ax=Aimul Y ;dx,ax = A*B (将操作数看作符号数,以下同)mov cx,axmov bx,dx ;bx,ax <-- dx,ax =A*Bmov ax,Z ;ax = Ccwd ;dx,ax =C (扩展符号后为双字)add cx,axadc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+Csub cx,540sbb bx,0 ;bx,cx<-- A*B+C-540mov ax, V ;ax= Dcwd ;dx,ax= D (扩展符号后为双字)sub ax, cxsbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540)idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数2.10;(1)xchg的操作数不能是立即数(2不能对CS直接赋值(3)两个操作数不能都是存储单元(4)堆栈的操作数不能是字节量(5)adc的操作数不能是段寄存器(6)没有确定是字节还是字操作(7)in不支持超过FFH的直接寻址(8)out只能以AL/AX为源操作数第二章(02)2.11;指令AX的值CF OF SF ZF PFMov ax,1407h1470h-----And ax,ax1470h00000Or ax,ax1470h00000Xor ax,ax000011Not ax0ffffh-----Test ax,0f0f0h0ffffh00101注意: 1. mov, not指令不影响标志位2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

单片机原理及应用——基于Proteus和Keil C林立版课后习题答案

第2章 MCS-51单片机结构及原理习题1.MSC-51单片机内部由哪些功能部件组成,各有什么功能?答:以80C51单片机为例,其内部功能部件有:控制器:是对取自程序存储器中的指令进行译码,在规定的时刻发出各种操作所需的控制信号,完成指令所规定的功能;运算器:根据控制器发来的信号,执行算术逻辑运算操作;存储器:包括程序存储和数据存储器;定时器计数器:2个16位定时器/计数器,可对机器周期计数,也可对外部输入脉冲计数;中断系统:可响应三个内部中断源和两个外部中断源的中断请求;输入输出接口:4个8位并行口和一个全双工串行口;2.MSC-51单片机外部引脚的名称是什么?各有什么功能?答:(1) 电源及晶振引脚VCC(40脚):+5V电源引脚VSS(20脚):接地引脚XTAL1(19脚);外接晶振引脚(内置放大器输入端)XTAL2(18脚):外接晶振引脚(内置放大器输出端)(2) 控制引脚(9)为复位/ 备用电源引脚RST/VPDALE/PROG(30)为地址锁存使能输出/ 编程脉冲输入PSEN(29):输出访问片外程序存储器读选通信号EA/ VPP (31):外部ROM允许访问/ 编程电源输入(3) 并行I/O口引脚P0.0~P0.7(39~32脚)——P0口;P1.0~P1.7(1~8脚)——P1口;P2.0~P2.7(21~28脚)——P2口;P3.0~P3.7(10~17脚)——P3口。

3.51系列单片机的封装有哪些类型?请说明每一种封装引脚之间的距离。

答:51系列单片机的封装有:40引脚双列直插封装(DIP——dual in-line package),引脚之间的距离是100mil(2.54mm);44引脚方形扁平封装(QFP ——quad flat package)方式,引脚之间的距离是2.54mm;44引脚带引线的塑料芯片载体PLCC(Plastic Leaded Chip Carrier)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档