计算机控制汇编语言编程
传送类指令
指令分类
二、寻址
数据传送与互换类
位操作指令
算术运算类
逻辑运算类
四、编程注意的几个步骤
"控制转移类
■位操作类
五、编程程序结构与技巧
六、常见的程序编程
色大亭
通用数据传送指令
数据传送是计算机中最基本、最重要的一种操作,传送指令
也是最常使用的一类指令
传送指令把数据从一个位置传送到另一个位置
有4种指令
M0V类进栈PUSH出栈P0PXH类
USH,
OP
XCH
色大亭
数据传送指令
CPU在进行算术和逻辑操作时,绝大多数指令都有
操作数,所以数据传送是一种最基本、最主要的操作
数据传送指令共29条,可分为内部RAM数据传送
外部RAM数据传送、程序存储器数据传送、数据交换和
堆栈操作等五类
寻址范围:累加器A、片内RAM、SFR、片外RAM
功能:(目的地址)←(源地址)。
可表示为:←
源地址单元的内容不变。
色大亭
mov指令是汇编里使用最频繁的指令
.传送指令Mo(move)它相当于高级语言中的赋值语句。
把一个字节或字的操作数从源地址传送至目的地址
Mov dest src
des t
src
25
色大亭
1.内部RAM数据传送指令(16条)
格式:MOV,
其中:表示目的操作数,表示源操作数
范围:源、目的操作数均在片内RAM、SFR中
指令形式:按目的操作数可将内部数据传送指令分为以下几类
(1)以累加器A为目的操作数(4条)
MOV A,
其中:包括Rn、@R、 direct、#data
(2)以工作寄存器Rn为目的操作数(3条)
MOV Rn.
其中:包括A、 direct、#data
色大亭
(3)以直接地址单元为目的操作数(5条)
mov direct
其中:包括A、Rn、@R;、 direct、#data
(4)以间址寄存器@Ri为目的操作数(3条)
MOⅤ@Ri,
其中:包括A、 direct、#data。
(5)6位数据传送指令(1条)
MOV DPTR. #data16
注:内部数据传送指令的传送
关系如右图所示。
色大亭
2.外部RAM数据传送指令(4条)
CPU与外部数据存储器之间进行数据传送时,必须使用外
部传送指令,只能通过累加器A,采用寄存器间接寻址(用R0,
R1和DPTR三个间接寻址的寄存器)方式完成。
指令格式: MOVX A,
OVⅩ,A
其中:、包括@DPTR、@R1。R1(R0,R1
只能访问片外RAM的低256个单元;DPTR可以访问片外RAM的
全部64KB的空间
色大亭
3.程序存储器(ROM)数据传送指令(查表指令)(2条)
程序存储器的数据传送是单向的,并且只能读到累加器A中
这类指令专门用于查表,又称为查表指令。
指令格式: MOVCA@A+DPTP;(A)←((A)+(DPTR))
MOVC A, A+PC
(PC)←(PC)+1
(A)←((A)+(PC))
两条指令的异同:其功能完全相同,但使用中存在着差异
(1)查表的位置要求不同
采用DPTR作为基地址寄存器,表可以放在64KB程序存储
空间的任何地址,使用方便,故称为远程查表。
采用PC作为基地址寄存器,具体的表在程序存储器中只能
在查表指令后的256B的地址空间中,使用有限制,故称为近程
查表
●大
WUYI UNIV
(2)偏移量的计算方法不同
采用DPTR作为基地址寄存器,查表地址为(A
+(DPTR)。采用PC作为基地址寄存器,查表地址
为(A)+(PC)+1。因此偏移量的计算方法不同
采用DPTR作为基地址寄存器,A为欲查数值距
离表首地址的值;采用PC作为基地址寄存器,A的值
必须预先设置为
A的值=表首地址-当前指令的PC值-1
色大亭
2.堆栈操作指令
堆栈是一个“后进先出FL0”(或说“先进
后出FL0”)的主存区域,位于堆栈段中;
SS段寄存器记录其段地址
堆栈只有一个出口,即当前栈顶;用堆栈
指针寄存器SP指定
·堆栈只有两种基本操作:进栈和出栈,对
应两条指令PUSH和POP
色大亭