ASM 板


LINE

看板 ASM  RSS
※ 引述《hiddencat (=____=)》之铭言: : 在8051组合语言 : 除法提供的是 : DIV ab : 执行的是8 bits的数据 : 但我想请教一下 : 如果我想要将一个为超过8 bits的数 : 除以一个一样是超过8 bits的数 : 取其余数的部分 : 该如何做到? : 随意举例: : 590351/1234 = ? : 我现在能想到的是用回圈来跑减法 : 相减之後判断被除数是否已小於除数 : 如果是 : 留下的即为其余数 : 不知道有没有其他更好的办法? 以前写的32bits四则运算,参考看看。 8051 32 位元四则运算 说明:所有运算的工作空间使用BUF所定址的12个位元组(Byte) ;MACRO for Clear Internal Data Memory ;R0 : Start Address ;R2 : Memory Length CIDM MACRO Length MOV R2,#Length CLR A MOV @R0,A INC R0 DJNZ R2,CIDM ENDM ;;Clear 4 Internal Data Memory CIDM4: CIDM 4 RET ;Internal Data Compare ;If not equal,CY = 1 IDC: LOOP: MOV A,@R0 MOV B,@R0 CJNE A,B,ENDLOOP INC R0 INC R1 DJNZ R2,LOOP ENDLOOP: RET ;32bits ADD ;R0[3]R0[2]R0[1]R0[0]=R0[3]R0[2]R0[1]R0[0] + R1[3]R1[2]R1[1]R1[0] ADD32: MOV R2,#04H CLR C F1: MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R2,L1 RET ;32bits subtract ;R0[3]R0[2]R0[1]R0[0]=R0[3]R0[2]R0[1]R0[0] - R1[3]R1[2]R1[1]R1[0] SUB32: MOV R2,#04H CLR C F2: MOV A,@R0 SUBB A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R2,L2 RET ;32bits Multipty ;BUF:12Bytes ;BUF[3]BUF[2]BUF[1]BUF[0] = BUF[3]BUF[2]BUF[1]BUF[0] x BUF[11]BUF[10]BUF[9]BUF[8] ;Work Area:BUF[7]BUF[6]BUF[5]BUF[4] ;Using reg R0,R1,R2,R3 MUL32: MOV R1,#(BUF+4) CALL CIDM4 MOV R3,#33 ;SHIFT COUNT CLR C F3: MOV R1,#(BUF+7) MOV R2,#(BUF+4) F4: MOV A,@R1 RRC A MOV @R1,A DEC R1 DJNZ R2,F4 JNC F5 CLR C MOV R0,#(BUF+4) CALL ADD32 F5: DJNZ R3,F3 RET ;32bits Divide ;BUF:12Bytes ;BUF[3]BUF[2]BUF[1]BUF[0] = BUF[3]BUF[2]BUF[1]BUF[0] / BUF[11]BUF[10]BUF[9]BUF[8] ;Work Area:BUF[7]BUF[6]BUF[5]BUF[4] ;Using reg R0,R1,R2,R3 DIV32: MOV R1,#(BUF+4) CALL CIDM MOV R3,#32 ;SHIFT COUNT CLR C F6: MOV R1,#BUF MOV R2,#(BUF+4) F7: MOV A,@R1 RLC A MOV @R1,A DJNZ R2,F7 MOV R0,#(BUF+7) MOV R1,#(BUF+11) MOV R2,#BUF CALL IDC JC F8 MOV R0,#(BUF+4) MOV R1,#(BUF+8) CALL SUB32 F8: CPL C DJNZ R3,F6 MOV R1,#BUF MOV R2,#BUF F9: MOV A,@R1 INC R1 DJNZ R2,F9 RET -- 不要问我从哪来,我只是一个浪迹天涯的工程师.... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.232.48.86
1F:推 hiddencat:我不太懂一开始的第一个指令MACRO是什麽意思 12/31 11:02
2F:→ hiddencat:我上网查了一下, 似乎叫做聚集指令?, 不过还是不太清楚 12/31 11:07
3F:→ hiddencat:用法 12/31 11:07
4F:→ hiddencat:还有 CALL指的是LCALL还是ACALL? 还是有其他意思@@? 12/31 11:11
5F:推 WolfLord:你爱怎麽CALL就怎麽CALL 重点是你有没有看懂原理 12/31 14:05
6F:推 ruemann:巨集啦……只是为了节省时间或阅读方便,用来做字串取代的 12/31 17:12







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP