📄 danpianji.txt
字号:
1、以累加器A为目的操作数的寻址方式
MOV A,#DATA
MOV A,#0FFH; 将立即数OFFH送给累加器A,作为A的内容;
MOV A,DIRECT
MOV A,30H;将30H单元作为一个地址,把该地址的内容取出来送给A作为A的内容;
MOV A,Rn
MOV A,R7;将R7的内容取出来送给A,作为A的内容;
MOV A,@Ri
MOV A,@R1;设R1的内容为30H,则执行该指令的功能是将R1的内容作为一个地址,在把该地址中的内容去出来送给A,作为A的内容;
以直接地址为目的操作数的寻址方式
MOV DIRECT,#DATA
MOV 30H,#88H;将立即数88H送到地址30H单元。
MOV DIRECT,DIRECT
MOV 48H,33H;将单元地址为33H的内容送到单元地址48H。
MOV DIRECT,RN
MOV 79H,R6;将R6的内容取出来送到地址79H;
MOV DIRECT,@Ri
MOV 80H,@R1;把R1的内容取出来作为一个地址,在把该地址的对应的内容取出来送到80H。
MOV DIRECT,A;
MOV 80H,A;将累加器A的内容送到地址单元80H中;
以寄存器RN为目的的地址寻址方式
MOV RN,#DATA
MOV R5,#21H;将立即数21H送给R5;
MOV RN,DIRECT
MOV R3,P1;将P1对应地址单元的内容送给R3;
MOV RN,A
MOV R4,A;将累加器A的内容送给寄存器R4;
以寄存器间接寻址为目的的寻址方式
MOV @Ri,#DATA
MOV @R1,#25H;将立即数25H送给以R1为内容为单元地址的空间当中。
MOV @Ri,DIRECT
MOV @R0,25H;将单元地址为25H的内容送到以R0为内容的单元地址空间中。
MOV @RI,A
MOV @RO,A;将累加器A的内容送到以R0为内容得单元地址空间中;
以数据指针为目的的16位数据传送指令
MOV DPTR,#DATA16
这条指令的功能是把16位立即数的高8位送给DPTR的高8为DPH;低8位送给DPTR的低8位DPL,这是唯一一条16为位立即数传送指令。
MOVX指令
用于片内片外数据交换的唯一方式。CPU无论是将片外的数据接收进来进行相应的操作处理,还是将处理完的数据送给外部执行功能都必须将采用此类指令。
MOVX A,@RI
MOVX A,@DPTR
MOVX @RI,A
MOVX @DPTR,A
设单片机系统拓展了2KB的外部RAM,是将片外0FAH单元的内容送到04FFH单元;
解:
需要用MOVX转化
MOV RO,#OFAH;将地址OFAH作为立即数传给寄存器R0;
MOVX A,@R0;将R0的内容作为单元地址空间,将该地址中的内容传送给累加器A;
MOV DPTR,#04FFH;将地址04FFH作为立即数传给寄存器传给DPTR
MOVX @DPTR,A;将寄存器A中的内容传送给以DPTR中的内容作为地址的单元空间中;也就是将A中的内容给04FFH;
MOVC指令
用于对程序寄存器的操作,她是将片外程序寄存器的内容读给A.
MOVC A,@A+PC
先将PC指针的内容加1,然后再将PC的值和累加器A(无符号数)的值想家形成新的地址,取出该地址的内容在传送给A。
MOVC A,@A+DPTR
以DPTR为基础寄存器,将DPTR的内容和A(无符号数)想家后得到一个16位地址,由该地址指出的程序寄存器单元传送给A。
交换指令
半字节交换指令
XCHD A,@RI;累加器的低半字节和RO或R1的低半字节进行交换,各自的高半字节保持不变。
字节交换指令
XCH A,DIRECT;
XCH A,RN;
XCH A,@RI
累加器A的低四位和高四位的交换指令
SWAP A;
设A=ABH,执行SWAP A后,A=BAH.
算数运算类指令
加法指令
1:不带进位的加法运算指令
ADD A,#DATA
ADD A,DIRECT
ADD A ,RN
ADD A,@RI
2:带进位加法运算指令
ADDC A,#DATA
ADDC A,DIRECT
ADDC A ,RN
ADDC A,@RI
3:自增1运算指令
INC A
INC DIRECT
INC RN
INC @RI
减法指令
带借位减法指令
SUBB
自减1运算指令
DEC
乘法运算指令
MUL AB
乘法运算指令的被乘数只能累加器A中,成熟只能存于寄存器B中。完成两个8位的二进制相乘,结果高8位
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -