《汇编语言》PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作码:反映了指令的功能。 操作数:反映了指令的对象。
eg: MOV A , #01 ADDC A,R1 ;01 A A 7401 39 ;(A)+(R1)+CY
§3.1.2 汇编伪指令
湘 伪指令:汇编时不产生机器语言代码的指令,仅提供汇 潭 编控制信息。 大 一、定位伪指令 学 ORG m 单 片 m:一般为十六进制数。 机 原 m指出在该伪指令后的指令的汇编地址,即生成的机器 理 指令起始存贮器地址。显然,当使用多条ORG m伪指 及 令时,应注意其后生成的机器指令存放地址不应重叠。 应 ORG 0 用 eg: 编 START: SJMP MAIN 著 ORG 0BH 组
§3.1.2 汇编伪指令
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
五、DS定义存贮空间伪指令 DS 表达式 在汇编时,从指定地址开始保留DS之后“表达式”的 值所规定的存贮单元。
ORG DS DB DW 1000H 07H 20H,20 12H
经汇编后,从地址1000H开始保留7个单元,然后从 1007H处存贮器的内容为:
EA
表示中断允许寄存器IE的位7置1。
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
八、页面寻址
当用寄存器间接寻址方式访问外部扩展的数据存贮 器,当用 R0 、 R1 作地址指针访问片外 RAM 时的寻址方 式称为页面寻址。页面地址由P2口的内容决定,页面内 的地址由R0或R1的内容决定。
操作数包含在指令字节中
eg: MOV A,#70H
五、基寄存器加变址寄存器间接寻址
以16位的程序计数器PC或数据指针DPTR作为基寄 存器,以8位的累加器A作为变址寄存器,内容相加形 成16位新的地址。
MOVC A,@ A +PC
MOVC A,@ A +DPTR
;((A)+(PC)) A
;((A)+(DPTR)) A
(1007H)= 20H (1008H)= 14H (1009H)= 00H (100AH)= 12H
§3.1.2 汇编伪指令
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
六、DATA数据地址赋值伪指令 字符名称 DATA 表达式 这里的“字符名称”与标号不同(其后没有冒 号),但它是必须的,其功能是把“表达式”的值赋 给左边的“字符名称”。 DATA伪指令与EQU伪指令 的主要区别是:EQU定义的“字符名称”必须先定义 后使用,而DATA定义的“字符名称”没有这种限制, 故DATA伪指令通常用在源程序的开头或末尾。 例3-7: ORG 0100H AA DATA 35H DPTRA DATA 0AA00H MOV A,AA ;(35H) A MOV DPTR,#DPTRA ;0AA00H DPTR
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
七、位寻址
在计算机中,某些特定的操作数可以按8位二进制 数中的某一位为单位进行存取和操作。位寻址方式是其 操作数是8位二进制中的某一位。 例315:MOV C,01H ;01H为位地址, 表示(20H).1的内容传送到进位累加器。
例316:SETB
二、 直接寻址
在指令中含有操作数的直接地址,该地址指出了参 与计算或传送的数据所在的字节单元或位的地址。 eg: ANL 70H,#48H ;(70H)^48H70H
操作数的直接地址
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
三、寄存器间接寻址
在指令中某一个寄存器的内容作为操作数的地址的 寻址方式,用符号@表示。 eg: ANL A, @R0 ; (A)^(( R0 )) A
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
一、寄存器寻址
由指令某一寄存器的内容作为操作数的寻址方式。
eg: INC R0 ;(R0)+1 R0
INC R0指令执 行过程示意图
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
§3.1.1汇编语言格式
由操作助记符和操作数字段组成 • 汇编指令指能汇编成机器语言代码的指令。 • 格式:操作码 [操作数1], [操作数2] ,[操作数3]
由2~5个英文字母 至少一个空格 组成的助记符
用“,”隔开,操作 个数可为无,1,2,3
§3.1.2 汇编伪指令
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
七、BIT定义位地址符号伪指令 字符名称 BIT 位地址
这里的“字符名称”与标号不同(其后没有冒 号),但它是必须的,其功能是把BIT之后的“位地址” 值赋给“字符名称”。 例3-6: P11 BIT P1.1 A2 BIT 02H MOV C,P11 MOV A2,C 八、汇编结束伪指令 END—指出汇编结束,其后即使还有指令,汇编程 序也不作处理。
§3.3 MCS-51的指令系统
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
MCS—51汇编语言有42种操作码助记符,33种操作功 能,111种指令,可分为: 数据传送类(29) 算术操作类(24) 逻辑操作类(24) 位操作类 (17) 控制转移类(17)
§3.3.1 数据传送类指令
eg: JC 80H ;C=1跳转 PC+2+rel PC
设原PC=1005H PC+2+rel=1005H+2+80H =1007H-128=0F87H =1007H+FF80H=0F87H
1000000010000000(-128) 求补码:1111111110000000
§3.2 MCS-51的寻址方式
第三章 MCS—51指令系统
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
§3.1 汇编语言指令格式 §3.1.1 汇编语言格式 §3.1.2 汇编伪指令 §3.2 MCS-51的寻址方式 §3.3 MCS-51指令系统 §3.3.1 数据传送类指令 §3.3.2 算术运算类指令 §3.3.3 逻辑运算类指令 §3.3.4 位操作类指令 §3.3.5 控制转移类指令
数据数据传送类指令一般的操作是把源操作数传 湘 潭 送到目的操作数,指令执行后,一般是源操作数不改 大 变,目的操作数修改为源操作数。可以在累加器 A 、 学 单 工作寄存器R0~R7、内部数据存贮器、外部数据存贮器 片 和程序存贮器之间进行。这类指令有:MOV,MOVX, 机 原 MOVC,XCH,XCHD,SWAP,POP,PUSH共8种。 理 一、以累加器A为目的操作数的指令 及 把源操作数的内容送ACC,源操作数的内容不变化。 应 用 (Rn) A 寄存器的内容作 MOV A , R n ;寄存器寻址 编 为含有操作数的直接地址。 著 MOV A,Direct ;直接寻址 组 MOV A,@Ri ;间接寻址
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
在高级语言编程时,程序设计人员不必关心程序 和数据的内存空间安排问题。但在汇编语言程序设计 时,要针对系统的硬件环境编程,数据的存放、传送、 运算都要通过指令来完成,编程者必须自始至终都十 分清楚操作数的位置,以便将它们传送至适当的空间 去操作。 寻址方式就是如何找到存放操作数的地址,把操 作数提取出来的方法。 MCS—51指令的系统的指令数的寻址方式主要有八 种:寄存器寻址、直接寻址、寄存器间接寻址、立即寻 址、基寄存器加变址寄存器间接寻址、相对寻址、位寻 址、页面寻址。
MOV A,#data ;立即寻址
i=0,1 寄存器的内容作为 含有操作数的地址
直接包含操作数
§3.3.1 数据传送类指令
A 湘 eg: MOV A,R6 ;(R6) 潭 MOV A,70H ;(70H) A 大 MOV A,@R0 ;(( R0)) A 学 MOV A,#78H ;78H A 单 片 机 二、以Rn为目的操作数的指令 原 源操作数的内容送入当前工作寄存器区的R0~R7 理 及 MOV Rn , A ;寄存器寻址 应 MOV Rn ,Direct ;直接寻址 用 n=0~7 编 MOV Rn ,#data ;立即寻址 著 组 eg: MOV R ,A ; ( A) R2 2
湘 §3.1 汇编语言指令格式 潭 计算机的指令系统是一套控制计算机操作的编码— 大 机器语言。计算机只能识别和执行机器语言的指令。 学 单 但机器语言实在太枯燥,太难记忆了。 片 机 汇编语言,高级语言 原 理 汇编程序 编译、解释 及 eg: MOV R0 ,#data 应 用 机器语言 机器语言 01111000 #data 编 著 组
经汇编后,从地址1000H处存贮器的内容为:
(1000H)= AAH (1001H)= 19H (1002H)= 25H (1003H)= 4DH (1004H)= 43H (1005H)= 53H (1006H)= 2DH (1007H)= 35H (1008H)= 31H
§3.1Βιβλιοθήκη Baidu2 汇编伪指令
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
六、相对寻址
相对寻址方式是以当前的程序计数器 PC 值加上指 令中给定的偏移量rel所得的结果作为转移地址。一般 将相对转移指令操作码所在地址称为源地址,转移后 的地址称为目的地址,则有: 目的地址 = 源地址 + 相对转移指令字节数 + rel
1000H 1234H 56H,2000
经汇编后,从地址1000H处存贮器的内容为:
§3.1.2 汇编伪指令
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
四、EQU 赋值伪指令 字符名称 EQU 项(数或汇编符号) EQU伪指令是把“项”赋给“字符名称”,注意 这里的“字符名称”不同于标号(其后没有冒号), 但它是必须的。用EQU赋过值的符号名可以用作数据地 址、代码地址、位地址或是一个立即数。 例:3-4: AA EQU R1 MOV A,AA 例:3-5: D10 EQU ADD_Y MOV LCALL 10 EQU 07ABH A,D10 ADD_Y
寄存器间接寻址 使用所选定的寄存器 中R0和R1作地址指针 (对栈操作时用堆栈 指针SP)来寻址内部 RAM(0~FFH),也 适用于访问外部扩展 的数据存贮器,用R0、 R1或DPTR作为地址 指针。
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
四、立即寻址
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
三、字定义伪指令
[标号:] DW Y1、 Y2 … Yn
通知汇编程序从当前ROM地址开始,保留存贮单元,并存 入DW后面的数据。存放时高8位在前,低8位在后。
例3-3 ORG DW SJ_DATA: DW
(1000H)= 12H (1001H)= 34H (1002H)= 00H (1003H)= 56H (1004H)= 07H (1005H)= D0H
LJMP PTFO ORG 40H
MAIN:
§3.1.2 汇编伪指令 湘 二、定义字节伪指令
潭 大 学 单 片 机 原 理 及 应 用 编 著 组
[标号:] DB X1、 X2 … Xn
ORG 1000H DB SJ-DATA: DB ZFC-DATA: DB 0AAH 25,25H 'MCS-51'
例317: MOV
MOV MOV MOVX
P2,#0A0H
R0,#01H A,#10H @R0,A
§3.2 MCS-51的寻址方式
湘 潭 大 学 单 片 机 原 理 及 应 用 编 著 组
虽然MCS51单片机的寻址方式有多种,但指令对 哪一个存贮器空间进行操作是由指令的操作码和寻址 方式确定的。总的来说,具有以下几点原则: (1)对程序存贮器只能采用立即寻址和基寄存器加变 址寄存器间接寻址寻址方式。 (2)对特殊功能寄存器空间只能采用直接寻址方式 (可以用符号来代表地址),不能采用寄存器间 接寻址方式。 (3)内部RAM高128B只能采用寄存器间接寻址方式, 不能采用直接寻址方式。 (4)内部RAM低128B 既能采用寄存器间接寻址方式, 又能采用直接寻址方式。 (5)外部扩展的数据存贮器只能采用MOVX指令访问。