muld.asm
来自「这是我最近写的一些单片机的简单的模块」· 汇编 代码 · 共 49 行
ASM
49 行
;muld的功能:双字节二进制无符号数乘法
org 000h
jmp 40h
org 40h
;入口信息:被乘数放在r2,r3中,乘数放在r6,r7中
;出口信息:乘积放在r2,r3,r4,r5中
start:
mov r2,40h ;r3 r2
mov r3,41h
mov r6,42h ;r7 r6
mov r7,43h
mul1:mov a,r2 ;最低字节的相乘
mov b,r6
mul ab
mov 50h,a;暂存乘积最低位
mov 51h,b;暂存高8位
mul2:mov a,r2 ;被乘数低,乘数高
mov b,r7
mul ab
mov 52h,a ;暂存乘积最低位
mov 53h,b ;暂存高8位
mul3:mov a,r3 ;被乘数高,乘数低
mov b,r6
mul ab
mov 54h,a ;暂存乘积最低位
mov 55h,b ;暂存高8位
mul4:mov a,r3 ;高8位
mov b,r7
mul ab
mov 56h,a ;暂存乘积最低位
mov 57h,b ;暂存高8位
result:mov r2,50h ;结果的低字节
mov a,51h ;结果的第二字节
addc a,52h
addc a,54h
mov r3,a
mov a,53h ;结果的第三字节
add a,55h
addc a,56h
mov r4,a
mov a,57h ;结果的最高字节
addc a,#00h
mov r5,a
jmp $
ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?