社区
汇编语言
帖子详情
32位汇编用移位做乘法
misaki_526
2014-06-12 04:47:41
把这个溢出了的数值弄到edx
...全文
459
4
打赏
收藏
32位汇编用移位做乘法
把这个溢出了的数值弄到edx
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2014-06-30
打赏
举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
大熊猫侯佩
2014-06-12
打赏
举报
回复
请参考我置顶的帖子: [置顶] [原创]初学者问题集以及一些编程思路 [推荐]
misaki_526
2014-06-12
打赏
举报
回复
为什么输出结果有些正确,有些错误
misaki_526
2014-06-12
打赏
举报
回复
以下是我的代码 include irvine32.inc .data input1 byte '请输入第一个数:', 0 input2 byte '请输入第二个数:', 0 array db 32 dup(0) array_sum dd 64 dup(0) .code main proc mov edx, offset input1 call writestring call readint mov ebx, eax ;ebx为乘数 mov edx, offset input2 call writestring call readint ;eax为被乘数 mov ecx, 32 xor edi, edi ;初始化开关数组的指针,CF清零 rcl ebx, 1 ;循环左移,调整 MOVE: rcr ebx, 1 mov edx, ebx and edx, 1;0fffeh mov array[edi], dl inc edi loop MOVE XOR EDI,EDI MOV ECX,32 L2: MOV EDX,OFFSET array MOV EBX,OFFSET array_sum CALL MoveMul INC EDI LOOP L2 MOV ECX,32 XOR EDI,EDI XOR EAX,EAX XOR EDX,EDX SUM: ADD EAX,array_sum[EDI] ADC EDX,array_sum[EDI+4] ADD EDI,8 LOOP SUM call writedec exit MoveMul PROC ;NEAR push ecx test byte ptr [edx][edi],1 ;测试移动开关是否打开 jz OFF ON: xor ecx,ecx ;清除进位标志 mov ecx,edi ;移位次数 cmp ecx, 0 je L2 L1: shl eax,1 ;被乘数eax左移1位 shl edx,1 ;移入edx loop L1 L2: mov [ebx][edi*8],eax ;保存移位后的结果eax mov [ebx][edi*8+4],edx ;保存移位后的结果edx OFF: pop ecx ret MoveMul ENDP main endp end main
32位
汇编
:实验6位运算类指令使用
本文深入讲解
32位
汇编
中逻辑与
移位
运算指令的应用,包括AND、OR、XOR、NOT等基本逻辑操作及SHL、SHR、ROL、ROR等
移位
指令的原理与标志位影响,并结合实例展示如何用
移位
实现
乘法
优化、多精度
移位
和ASCII字符到压缩BCD码的转换。
DSP
汇编
实战:
32位
有符号
乘法
优化与64位结果处理
本文聚焦于TMS320C6000系列DSP平台上的
32位
有符号
乘法
汇编
优化,涵盖四路16位分解原理、MPYU/MPYHU等专用
乘法
指令特性、符号预处理(ABS/CMPLT/XOR)、64位结果的带进位累加策略(ADDU+
移位
对齐)、数据段内存布局(.bss/.data对齐与缓存友好设计),并通过实测对比揭示
汇编
相较C语言在周期数(12 vs 40 cycles)和实时性方面的显著优势。
python语言写
汇编
器_
汇编
语言程序作业代写代
做
、代
做
汇编
语言作业、代
做
留学生
汇编
作业代写Python编程|代
做
留学生Processing...
该博客围绕
汇编
语言实现位运算
乘法
展开。目标是实现位运算
乘法
算法、应用循环、编写并使用自定义过程、运用Irvine32.inc库。需编写BitwiseMultiply过程,用
移位
和加法实现无符号
32位
整数与EAX相乘,还需写测试程序调用该过程并显示结果。
【ARM系列】ARM常用
汇编
指令
本文详细介绍了ARM架构中常用的一些
汇编
指令,包括数据传送如MOV,算数运算如ADD和SUB,
32位
乘法
MUL,比较和跳转指令如CMP和BEQ,以及加载-存储指令LDR和STR。此外,还涵盖了
移位
指令LSL和LSR,系统寄存器访问的MSR和MRS,以及逻辑运算指令AND、ORR和BIC。这些指令在芯片调试和代码分析中起到关键作用。
[Linux C] 深入解析do_div():内核高效64位除法的实现与优化
本文深入剖析Linux内核专用宏do_div()的设计动机、跨平台实现机制及性能优化策略。重点阐述其解决
32位
架构下64位除法缺乏硬件支持与标准库缺失的问题,介绍基于内联
汇编
/编译器内置函数的架构适配(x86-64 vs ARMv7),分析常量除数下的
乘法
移位
优化、软件模拟算法原理,并结合调度器、时间子系统等真实场景说明其必要性与使用规范。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章