请教各位:Ai32G单片机C251编译器下32乘法的问题
本帖最后由 DebugLab 于 2024-10-21 17:15 编辑我现在需要移植一个“祖传”的程序,可能遇到32位乘法的问题,我看32G的手册,34.3.1 章节 32 位乘法中说被乘数放在R4~R7中,乘数放在R0~R3中,结果放在R4~R7中,
在汇编下,keil 项目中也加入了库文件“STC32_MDU32_LARGE_.LIB,假设我要计算4567H乘以1234H,4567H依次R4~R7中,1234依次放入R0~R3中,执行MOV DMAIR,#02, 期望结果放入R4~R7中,但仿真执行的结果是R4~R7中的内容没有改变,请问是哪个环节我落下了?谢谢。加入库文件的画面如下:
必须要硬件仿真,软件仿真只能仿真内核,无法仿真Ai MCU新增的外设 汇编指令就不需要调用库文件了,直接用指令实现,参考下面帖子:
求助!STC32G12K128怎么用汇编调用乘法器?
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=6393
(出处: 国芯技术交流网站)
DebugLab 发表于 2024-10-21 17:16
必须要硬件仿真,软件仿真只能仿真内核,无法仿真Ai MCU新增的外设
好的,谢谢Debug老师的回帖。 乘风飞扬 发表于 2024-10-21 17:20
汇编指令就不需要调用库文件了,直接用指令实现,参考下面帖子:
求助!STC32G12K128怎么用汇编调用乘法器 ...
谢谢乘风老师的回帖,在那个贴子里,我看到乘数和被乘数都不小,乘积超过32位了,我看您把后32位加了框,也就是说R4~R7只存储这低32位? MDU32支持的运算类型规格书里面也有介绍:
乘风飞扬 发表于 2024-10-22 08:58
MDU32支持的运算类型规格书里面也有介绍:
乘风老师,谢谢您的回复,看了您的回帖彻底明白了。
页:
[1]