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