本帖最后由 吾要单片机 于 2019-10-8 10:19 编辑
;酷能汇编语言实例:
;指令格式:[标号:] 操作符 [操作数1,操作数2,....] [;注释]
ADDR1: EQU 50H ;伪定义
PUBLIC DCHAR ;公共符号表
ADDR2: EQU 6H ;伪定义
EXTERN CHARN, FUNC ;外部变量表
PUBLIC ACK, CHAR1 ;公共变量表
SEGMENT name1, CONST ;设置常数段,段名为name1,本段是重定位
STRING: DB "HELLO \"\;WOLD",0 ;字符串(单行写法),字符串后面需要手工补0
STRING2: DB "LI CHAO BO"
DB " WUYAOD\"ANPIANJI",0 ;字符串(多行写法)LI CHAO BO WUYAODANPIANJI,字符串后面需要手工补0
SHUZU_P: DW DCHAR, CHARS, STRING, AAN, FUC1 ;指针数组
ENDS ;段结束
SEGMENT name2, DATA ;设置数据段,段名为name2,本段是重定位
DCHAR: DB 12H ;公共变量,16进制数要后缀H
AAN: DB 0ABH,0CDH,89H;16进制数要后缀H,不是0~9打头则以0打头
DB 0CDH,12H,78H
BBN: DH 1234 ;10进制,以0~9打头
CHAR: DB 'H' ;单个字符
CHARS: DB 'H','E','L','L','O',' ',41H,42H,43H,44H ;多个字符
ACK: BW 1 ;公共变量,留空1个字
BAK: BH 50h ;留空50*16=80个半字
CHAR1: DW 100,34H ;公共变量
CHAR2: BB 10 ;留空10个字节
ENDS ;段结束
SEGMENT name3, STACK ;设置栈段,段名为name3,,本段是重定位
blank: BD 200 ;留空200个双字
ENDS ;段结束
SEGMENT name4, CODE, LOCATE = 80000000H ;设置代码段,段名为name4,有[LOCATE = 80000000H]字段,则表示本段绝对定位,起始地址是80000000H
ENTRY START ;本代码段有指定程序入口
MULTAD MACRO x, y, z ;宏指令定义
ADD R<x>, R<y>, R<z> ;形参用<>包围起来
MOV R<z>, R<x>
ENDM ;宏定义结束
START: MOV R1, 8765H ;16进制立即数,后缀H
MOV R2, R7
MOV R3, HR1
MOV HR0, R1
MOV HR1, HR0
MOV CR6, R10
MOV R6, CR9
MOV CR6, HR0
MOV HR1, CR9
MOV cr1, cr12
MULTAD 1, 2, 6 ;宏指令调用
CALL FUNC
ALIGN 3 ;地址对齐
FUC1: ADD R1, C
OR R2, R4, 1234
SUB R2, 12 ;10进制立即数,无后缀H
JMP GHFN
ORG 80000100H ;设置绝对地址
SLB R2, [R5+, 45]
SLB R3, [+R2, -145]
;其它汇编代码
STRB R3, [R3+, 123H]
STRB R3, [R3, 12345H]
;其它汇编代码
GHFN: ADD R1, R5, 1000
;其它汇编代码
ENDS ;段结束
END ;文件结束
|