编辑: hgtbkwd 2016-06-11
* 3.

1 指令格式3.2 寻址方式3.3 数据传送指令3.4 算术运算指令3.5 逻辑运算指令3.6 位操作指令3.7 控制转移指令3.8 调用和返回指令 本章将详细介绍MCS-51系列单片机的指令系统. * 3.1 指令格式

一、 汇编语言指令格式[标号:] 操作码 [操作数1],[操作数2][;

注释]例: LOOP: MOV A,#40H ;

40H ->

A 标号: 指令的符号地址.1~8个字母或数字,并以冒号 : 结尾.操作码:指明指令功能.2~5个字母. MOV - 传送ANL - 逻辑与MUL - 乘法RR - 右循环SJMP - 短跳转RET - 子程序返回 例: * [标号:] 操作码 [操作数1],[操作数2][;

注释]例: LOOP: MOV A,#40H ;

40H ->

A 操作数:指令操作对象数据、地址、寄存器名及 约定符号. 注释行:说明指令在程序中的作用. 操作码和操作数是指令主体. *

二、伪指令 汇编时不产生机器码,仅供汇编识别控制. 1.定位伪指令 格式: ORG m 例3-3 ORG 0000H START: SJMP MAIN … ORG 0030H MAIN: MOV SP,# 30H 以START开始的程序汇编为机器码后从0000H存贮单元开始 连续存放. 2.结束伪指令 格式: END * 3.定义字节伪指令 格式: DB X1,X2,…Xn例3-4 ORG 7F00H DB 01110010B,16H,45,'

8'

,'

A'

汇编后存贮单元内容为: (7F00H)=72H (7F01H)=16H (7F02H)=2DH (7F03H)=38H (7F04H)=40H 4.定义字伪指令 格式: DW Y1,Y2,…,Yn * 5.定义空间伪指令:DS表达式 例3-5 ORG 0F00H DS10H DB20H,40H 汇编后,从0F00H开始,保留16个字节的内存单元, 然后从0F10H开始,按照下一条DB伪指令给内存单元赋值,得(0F10H)=20H,(0F11H)=40H. * 例3-6 ORG 8500H AA EQU R1 A10 EQU 10H DELAY EQU 87E6H MOV R0, A10 ;

R0←(10H)MOV A, AA ;

A←(R1)LCALL DELAY;

调用起始地址为87E6H的子程序 END EQU赋值后,AA为寄存器R1,A10为8位直接地址10H, DELAY为16位地址87E6H. 6.等值伪指令:EQU数据或汇编符 * 7.数据地址赋值伪指令 格式: DATA 表达式 8.位地址赋值伪指令 格式: BIT 位地址 *

一、立即寻址方式 指令中给出实际操作数据(立即数), 一般用于为寄存器或存储器赋常数初值. 例: 8位立即数: MOV A,#40H ;

A?40H 16位立即数: MOV DPTR,#2100H ;

DPTR?2100H 3.2 指令寻址方式 寻找操作数的方法叫寻址方式. *

二、直接寻址方式 指令操作数是存储器单元地址,数据在存储器单元中.MOV A,40H;

A?(40H) 例:设存储器两个单元的内容如图所示, 执行指令 MOV A,40H 后A直接寻址方式对数据操作时,地址是固定值,而地址所指定 的单元内容为变量形式. ? 56H *

三、寄存器寻址方式 指令操作数为寄存器名,数据在寄存器中. 例: MOV A,R0;

A?R0 设指令执行前 A=20H,R0=40H, 执行指令后,A= ?,R0= ? 40H 40H

四、寄存器间接寻址方式 指令的操作数为寄存器名,寄存器中为数据地址. 存放地址的寄存器称为间址寄存器或数据指针. 例: MOV A,@R0;

A?((R0)) 设指令执行前 A=20H,R0=40H,地址为 40H存储器单元内容如图所示.执行指令后, A=R0 40H)= ? 34H 40H 40H *

五、变址间接寻址方式 数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量. 数据地址 = 基地址 + 偏移量. 例:MOVC A,@A+DPTR;

A?(A+DPTR) 设指令执行前 A=09H,DPTR=2000H,存储器单元内容如图所示. 执行指令后,A=DPTR= ? 12H 2000H *

六、相对寻址方式 以PC的内容作为基地址,加上偏移量,所得结果送PC寄存器 作为转移地址.偏移量在-128~ +127之间. 例:SJMP80H;

短跳转 *

0 28H

01100010 29H

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题