dpj1.asm
来自「自己的平时一些制作 现在整理一下 与大家一起分享」· 汇编 代码 · 共 54 行
ASM
54 行
; dpj1
; 内存初始化
MOV A,#0
MOV R0,#0FFH
INI : MOV @R0,A
INC A
DJNZ R0,INI
;直接寻址
MOV A,03H ;把地址03H中的数移入累加器
MOV 43H,22H ;把地址22H中的数移入地址43H
MOV 02H,C ;把C中的数移入位地址02H中
MOV 42H,#18H ;把立即数18H移入地址42H中
MOV 09H,P1 ;把端口1中的数移入地址09H中
;间接寻址
;DATA和IDATA区寻址
MOV R1,#22H ;设置R1为指向DATA区内的地址22H的指针
MOV R0,#0A9H ;设置R0为指向IDATA区内的地址0A9H的指针
MOV A,@R1 ;读入地址22H的数据
MOV @R0,A ;将累加器中的数据写入地址A9H中
INC R0 ;R0中的地址变为AAH
INC R1 ;R1中的地址变为23H
MOV 34H,@R0 ;将地址AAH中的数据写入34H
MOV @R1,#67H ;把立即数写入地址23H
;XDATA区寻址
MOV DPTR,#3048H; DPTR 指向外部存储区
MOVX A,@DPTR ; 读入外部存储区地址3048H中的数
INC DPTR ; 指针加一
MOV A,#26H ; 立即数26H写入A中
MOVX @DPTR,A ; 将26H写入外部存储区地址3049H中
MOV R0,#87H ; R0指向外部存储器区地址87H
MOVX A,@R0 ; 将外部存储区地址87H中的数读入累加器中
;CODE区寻址
MOV DPTR,#TABLE_BASE ;DPTR指向表首地址
MOV A,#5 ;把偏移量(数5)装入累加器中
MOVC A,@A+DPTR ;从表中读出数据到累加器中(5的平方)
SJMP INDEX2 ;
TABLE_BASE:
DB 0,1,4,9,16,25,36 ;平方表
INDEX2:
MOV A,#5 ;把偏移量(数5)装入累加器中
ADD A,#2 ; 由于SJMP EXIT指令占2个字节,修正偏移量
MOVC A,@A+PC ;从表中读出数据到累加器中(5的平方)
SJMP EXIT
DB 0,1,4,9,16,25,36 ;平方表
EXIT: SJMP $
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?