Q第三章指令系统与汇编语言程序设计 ◆第一节指令系统概述 ◆第二节汇编语言程序实例 ◆第三节寻址方式 ◆第四节指令系统 ◆第五节汇编语言程序设计
第三章 指令系统与汇编语言程序设计 第一节 指令系统概述 第二节 汇编语言程序实例 第三节 寻址方式 第四节 指令系统 第五节 汇编语言程序设计
第一节指令系统概述 ◆程序设计语言可分为机器语言、汇编语言和高 级语言三种 ◆机器语言是由1和0两个二进制数码组成的,是 唯一能直接在计算机上运行的语 ◆用一些助记符号来代替用二进制码编写的程序 这种用助记符来描述指令的语言称为汇编语言 ◆用汇编语言写出的程序称为汇编语言程序。汇 编语言程序必须翻译为二进制机器语言才能送 给计算机执行,这个过程称为汇编。 ◆计算机不能直接执行高级语言,要通过编译或 解释程序,将其翻译成为机器语言,才能被执 行。常用的高级语言有:C语言、VC、VB等
第一节 指令系统概述 程序设计语言可分为机器语言、汇编语言和高 级语言三种。 机器语言是由1和0两个二进制数码组成的,是 唯一能直接在计算机上运行的语言。 用一些助记符号来代替用二进制码编写的程序。 这种用助记符来描述指令的语言称为汇编语 言。 用汇编语言写出的程序称为汇编语言程序。汇 编语言程序必须翻译为二进制机器语言才能送 给计算机执行,这个过程称为汇编。 计算机不能直接执行高级语言,要通过编译或 解释程序,将其翻译成为机器语言,才能被执 行。常用的高级语言有:C语言、VC、VB等
Q·三、指令和指令系统 ◆指令是指挥CPU进行各种操作的命令。 条指令通常由操作码和操作数两部分 组成: ◆操作码 ◆操作数 ◆操作码表示本指令为何种操作。在执行 指令时,操作码部分会被送入译码电路 进行译码,CPU根据译码结果来控制相 应的电子线路完成指令的操作
二、指令和指令系统 指令是指挥CPU进行各种操作的命令。 一条指令通常由操作码和操作数两部分 组成: 操作码 操作数 操作码表示本指令为何种操作。在执行 指令时,操作码部分会被送入译码电路 进行译码,CPU根据译码结果来控制相 应的电子线路完成指令的操作
程序的执行过程 ◆程序是完成某一任务的指令的集合。程 序中的指令是以机器码的形式存放在存 储器中的。在程序的执行过程中这些机 器码将按次序被取出,然后被译码、执 ◆程序除了可按顺序执行外,还可跳转执 些指令如转移指令、子程序调用 与返回指令等,都会改变PC的值,从而 实现程序的转移。另外,在中断系统中 中断系统的硬件电路也会改变PC的值, 从而使CPU转去执行中断服务程序 ◆CPU复位时,PC被清零
三、程序的执行过程 程序是完成某一任务的指令的集合。程 序中的指令是以机器码的形式存放在存 储器中的。在程序的执行过程中这些机 器码将按次序被取出,然后被译码、执 行。 程序除了可按顺序执行外,还可跳转执 行。一些指令如转移指令、子程序调用 与返回指令等,都会改变PC的值,从而 实现程序的转移。另外,在中断系统中, 中断系统的硬件电路也会改变PC的值, 从而使CPU转去执行中断服务程序。 CPU复位时,PC被清零
Q第二节汇编语言程序实例 ◆汇编语言程序的编制与调试的过程 ◆该过程可归纳如下: (1)用文本编辑软件编辑源程序; (2)将源程序汇编成机器码目标程序,然后将 目标程序装入到单片机系统中; (3)执行程序,检查CPU现场和有关存储单元 的内容 ◆对于不同的单片机开发系统,以上操作过程可 能在细节上有所不同,但主要的步骤是基本相 同的
第二节 汇编语言程序实例 汇编语言程序的编制与调试的过程 该过程可归纳如下: (1)用文本编辑软件编辑源程序; (2)将源程序汇编成机器码目标程序,然后将 目标程序装入到单片机系统中; (3)执行程序,检查CPU现场和有关存储单元 的内容。 对于不同的单片机开发系统,以上操作过程可 能在细节上有所不同,但主要的步骤是基本相 同的
◆例3.1计算3+5 ◆我们可编制出如下程序 MOV A, 30H add A, 31H MOV 32H, A ◆该程序存放在程序存储器的什么位置,程序的 结束标记等。这些说明是由伪指令来完成的 完整的源程序如下: ORG 4000H MOV A, 30H ADd A, 31H MOV 32H, A END ◆*条指令为伪指令,表示该指令以下的程序是 从程序存储器的4000H单元开始存放的;**条
例3.1 计算3+5 我们可编制出如下程序: MOV A,30H ① ADD A,31H ② MOV 32H,A ③ 该程序存放在程序存储器的什么位置,程序的 结束标记等。这些说明是由伪指令来完成的。 完整的源程序如下: ORG 4000H MOV A,30H ① ADD A,31H ② MOV 32H,A ③ END ** *条指令为伪指令,表示该指令以下的程序是 从程序存储器的4000H单元开始存放的;**条 指令也是伪指令,告诉汇编程序汇编到此结束
◆2.汇编 Q◆汇编就是将编辑好的汇编语言源程序翻 译成机器语言程序。汇编的方法有两种: 人工汇编和机器汇编。 ◆3.执行 ◆给程序计数器PC赋值为4000H,然后运 行程序: ◆①单步或断点(如断点地址设置为4004H) 执行程序,检查CPU现场和有关存储单 元的内容。 ◆②连续执行程序,检查运行结果
2.汇编 汇编就是将编辑好的汇编语言源程序翻 译成机器语言程序。汇编的方法有两种: 人工汇编和机器汇编。 3.执行 给程序计数器PC赋值为4000H,然后运 行程序: ①单步或断点(如断点地址设置为4004H) 执行程序,检查CPU现场和有关存储单 元的内容。 ②连续执行程序,检查运行结果
Q第三节寻址方式 ◆我们把各种不同类型的操作方式称为寻址方式。 ◆MCS-51系列单片机的寻址方式主要有七种: 立即寻址、寄存器寻址、直接寻址、寄存器间 接寻址、变址寻址、相对寻址和位寻址。 立即寻址 ◆在立即寻址中,操作数的数值在指令中写出, 眼就可看出其数值的大小。这种在指令中可 以看出数值大小的操作数称为立即数,书写时 前面要加“#”。立即数有8位和16位两种 寄存器寻址 ◆在寄存器寻址中,操作数存放在寄存器中,指 令中给出的是寄存器的名称
第三节 寻址方式 我们把各种不同类型的操作方式称为寻址方式。 MCS-51系列单片机的寻址方式主要有七种: 立即寻址、寄存器寻址、直接寻址、寄存器间 接寻址、变址寻址、相对寻址和位寻址。 一、立即寻址 在立即寻址中,操作数的数值在指令中写出, 一眼就可看出其数值的大小。这种在指令中可 以看出数值大小的操作数称为立即数,书写时 前面要加“#”。立即数有8位和16位两种。 二、寄存器寻址 在寄存器寻址中,操作数存放在寄存器中,指 令中给出的是寄存器的名称
◆三、直接寻址 ◆在直接寻址中,操作数存放在存储器中,指令 中给出的是操作数的存放地址。指令执行过程 中,地址值被送上地址总线,经译码后选通操 作数所在的存储单元,这样就可对操作数进行 操作。 ◆四、寄存器间接寻址 在寄存器间接寻址中,操作数存放在存储器中 该存储单元的地址又存放在寄存器中,而指令 中给出的是寄存器名称。执行这类指令时, CPU将寄存器的值(即操作数的地址)送上地 址总线译码,选通操作数所在的存储单元,再 对操作数进行操作。书写时,寄存器名称前要 ◆MCS-51系列单片机规定,只有工作寄存器R0 与R1可用于寄存器间接寻址
三、直接寻址 在直接寻址中,操作数存放在存储器中,指令 中给出的是操作数的存放地址。指令执行过程 中,地址值被送上地址总线,经译码后选通操 作数所在的存储单元,这样就可对操作数进行 操作。 四、寄存器间接寻址 在寄存器间接寻址中,操作数存放在存储器中, 该存储单元的地址又存放在寄存器中,而指令 中给出的是寄存器名称。执行这类指令时, CPU将寄存器的值(即操作数的地址)送上地 址总线译码,选通操作数所在的存储单元,再 对操作数进行操作。书写时,寄存器名称前要 加“@” 。 MCS-51系列单片机规定,只有工作寄存器R0 与R1可用于寄存器间接寻址
◆在单片机系统扩展中,片外RAM的地址可以是 8位,也可以是16位。 ◆若是8位,使用RO、R1间接寻址 ◆若是16位,则用数据指针DPTR间接寻址。 ◆在MCS-51系列单片机的51子系列中,间接寻 址中的R0和R1取值范围为00H~7FH ◆五、变址寻址 ◆在变址寻址中,操作数存放在程序存储器中, 操作数的地址是累加器A与数据指针DPTR或程 序计数器PC的值的和 ◆在MCS-51系列单片机中,还有其它的寻址方 式,如相对寻址、位寻址等
在单片机系统扩展中,片外RAM的地址可以是 8位,也可以是16位。 若是8位,使用R0、R1间接寻址 。 若是16位,则用数据指针DPTR间接寻 址。 在MCS-51系列单片机的51子系列中,间接寻 址中的R0和R1取值范围为00H~7FH 。 五、变址寻址 在变址寻址中,操作数存放在程序存储器中, 操作数的地址是累加器A与数据指针DPTR或程 序计数器PC的值的和。 在MCS-51系列单片机中,还有其它的寻址方 式,如相对寻址、位寻址等