标签:
9S12 汇编 指令 数学运算
课程需要的例子,写下来贴这里,格式就不修改了。
在$2000单元开始存放字节型数据$10,$30,$04,$A0,在$2010单元开始存放字节型数据$11,$1A,$09,$1F,分别使用加、减、乘、除四中运算处理对应位置的数据。并把结果存到$2020开始的内存单元中。
Counter ds.w 1
FiboRes ds.w 1
;定义数据及结果存放单元
ORG $2000;在$2000开始按要求存放数据
S1:
FCB $10,$30,$04,$a0
ORG $2010;在$2010开始按要求存放数据
S2:
FCB $11,$1A,$09,$1F
ORG $2020;在$2020开始开辟结果空间10个字节
RESULT:
rmb 10
; code section
MyCode: SECTION
main:
Entry:
LDS
#__SEG_END_SSTACK ; initialize
the stack pointer
CLI ; enable interrupts
;加法 A + B = A
LDAA S1 ;A=10
LDAB S2 ;B=11
ABA ;A=21
STAA RESULT ;[2020]=21
;减法 A - B = A
LDAA S1+1 ;A=30
LDAB S2+1 ;B=1A
SBA ;A=16
STAA RESULT+1 ;[2021]=16
;乘法 A * B = D
LDAA S1+2 ;A=04
LDAB S2+2 ;B=09
MUL ;D=24(A=00,B=24)
STD RESULT+2 ;[2022]=0,[2023]=24
;除法 Y:D /
X = Y…D
LDY #$0 ;Y=0
LDAA #$0 ;A=0
LDAB S1+3 ;Y:D=A0
LDAA S2+3 ;A=1F
TFR A,X ;X=1F
CLRA ;A=0
EDIV ;Y=5,D=5
STY RESULT+4 ;[2024]=0,[2025]=5
STD RESULT +6 ;[2026]=0,[2027]=5
系统分类:
单片机 | 用户分类:
9S12 | 来源:
原创 | 【推荐给朋友】 | 【添加到收藏夹】