第4章汇编语言程序设计 ◆41汇编语言基本概念 ◆4.2汇编语言程序设计
第4章 汇编语言程序设计 4.1 汇编语言基本概念 4.2 汇编语言程序设计
4.1汇编语言基本概念 ◆按照语言的结构及其功能可以分为三种: 1.机器语言:机器语言是用二进制代码0和1表 示指令和数据的最原始的程序设计语言。 2.汇编语言:在汇编语言中,指令用助记符表 示,地址、操作数可用标号、符号地址及字 符等形式来描述。 3.高级语言:高级语言是接近于人的自然语言, 面向过程而独立于机器的通用语言
4.1 汇编语言基本概念 按照语言的结构及其功能可以分为三种: 1.机器语言:机器语言是用二进制代码0和1表 示指令和数据的最原始的程序设计语言。 2.汇编语言:在汇编语言中,指令用助记符表 示,地址、操作数可用标号、符号地址及字 符等形式来描述。 3.高级语言:高级语言是接近于人的自然语言, 面向过程而独立于机器的通用语言
汇编语言的语句结构 1.汇编语言的指令类型 ◆McS-51单片机汇编语言,包含两类不同性质 的指令。 ◆(1)基本指令:即指令系统中的指令。它们 都是机器能够执行的指令,每一条指令都有对 应的机器码。 ◆(2)伪指令:汇编时用于控制汇编的指令。 它们都是机器不执行的指令,无机器码
汇编语言的语句结构 1.汇编语言的指令类型 MCS-51单片机汇编语言,包含两类不同性质 的指令。 (1)基本指令:即指令系统中的指令。它们 都是机器能够执行的指令,每一条指令都有对 应的机器码。 (2)伪指令:汇编时用于控制汇编的指令。 它们都是机器不执行的指令,无机器码
2.汇编语言的语句格式 ◆汇编语言源程序是由汇编语句(即指令)组 成的。汇编语言一般由四部分组成。 ◆其典型的汇编语句格式如下 [标号]操作码[目的操作数[源操作数][注释] START: MOVA, 30H, A+(30H) (1)标号 位于语句的开始,代表该语句的地址;由1~8个字母和 数字组成,必须以字母打头,以冒号结束,不能使用指 令助记符、伪指令或寄存器名
2.汇编语言的语句格式 汇编语言源程序是由汇编语句(即指令)组 成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下: [标号:]操作码 [目的操作数][,源操作数][;注释] START: MOVA,30H ;A←(30H) (1)标号 位于语句的开始,代表该语句的地址;由1~8个字母和 数字组成,必须以字母打头,以冒号结束,不能使用指 令助记符、伪指令或寄存器名
(2)操作码 即指令的助记符,表示具体执行的操作,不可省略。 (3)操作数 操作数与操作码之间用空格分开。源操作数与目的操作 数之间用逗号分开,必须满足寻址方式的规定。 (4)注释 对程序的必要说明,注释与操作数之间用分号隔开。 指令中以AF开头的十六进制数前必须添一个“0”。 √二进制数必须带后缀“B”或“b”;十六进制数必须带 后缀“H或“h”;十进制数的后缀是“D或“d”或 无 √BcD码:用二进制数表达的十进制数。 (0~9表示为:0000~1001B后缀B/b,H/h)
(2)操作码 即指令的助记符,表示具体执行的操作,不可省略。 (3)操作数 操作数与操作码之间用空格分开。源操作数与目的操作 数之间用逗号分开,必须满足寻址方式的规定。 (4)注释 对程序的必要说明,注释与操作数之间用分号隔开。 √指令中以 A—F 开头的十六进制数前必须添一个 “0” 。 √二进制数必须带后缀“B”或“b”;十六进制数必须带 后缀“H”或“h”;十进制数的后缀是“D”或“d”或 无。 √ BCD码:用二进制数表达的十进制数。 (0~9表示为:0000~1001B 后缀:B/b,H/h)
伪指令 汇编程序汇编语言编写的程序借助编译工具编译 成为目标代码计算机才能识别。这个编译工具称 为汇编程序。 」指令:告诉计算机如何操作以及做何种操作。 伪指令:告诉汇编程序在翻译应用程序时有何县 体约完。伪指令不进行具体的操作,那是真指令的 事。 比如:从何处开始,何处结束,某些编程者自己规 定的表述代表什么意思
伪指令 汇编程序:汇编语言编写的程序借助编译工具编译 成为目标代码,计算机才能识别。这个编译工具称 为汇编程序。 指令:告诉计算机如何操作以及做何种操作。 伪指令:告诉汇编程序在翻译应用程序时有何具 体约定。伪指令不进行具体的操作,那是真指令的 事。 比如:从何处开始,何处结束,某些编程者自己规 定的表述代表什么意思……
汇编程序的常用伪指令 1.设置起始地址0RG( origin) 格式:0RGm;m是16位二进制数 ;m给出了存放的起始地址值 给程序起始地址或数据块的起始地址賦值。它总是岀现在毎段源程序或数据块的开始。 在一个源程序中可以多次使用RG命令,以规定不同程序段或数据块的起始位置, 所规定的地址从小到大,不允许重叠。 例如:0RG000 MAIN: MOVSP, #6FH CALLSUBI 0RG1000H SUB1: MOVA #74H
汇编程序的常用伪指令
2.定义字节命令DB( Define Byte) 格式:标号:DB<字节常数或字符 例 0RG1000H TABLE1:DB00,08409,10H,19H 汇编后则(1000h)=00H (1001h)=01H (1002h)=04H (1003h)=09H (1004h)=10H (1005h)=19H
3定义字命令DW( Define Word) 格式:标号:DW 例 0RG2000H ABC:DW1234H=2468H1357H 汇编后则(2000h12H 2001h)=34H (2002h)=24H (2003h)=68H (2004h)=13H (2005h)=57H 伪指令DB、DW都只对程序存储器起作用,它们不能对 数据存储器初始化。可用DB、DW在程序存储器定义数 据表格,DW还能定义一个地址表
伪指令DB、DW都只对程序存储器起作用,它们不能对 数据存储器初始化。可用DB、DW在程序存储器定义数 据表格,DW还能定义一个地址表
4.赋值命令 EQU(Equale) 格式:字符名称EUm或汇编符号 例 BLCK EQU #1000H TEST EQU28H(直接地址单元) TEsT1E0U#28H(立即数 NMB EQU #10 MOv A, TEST direct) 执行后,A=(28H 若28H中存放着56H,则A=56H MOV A, TEST1#data A=28H MOV R2, NMB (R2)=10 MOV DPTR, BLOCK 5.源程序结束END 格式:标号:END
字符名称