首页
社区
课程
招聘
[分享] Kip_Asm 7.2.2用移位和加法计算任意两个32位无符号整数的乘法
发表于: 2017-11-19 16:04 2385

[分享] Kip_Asm 7.2.2用移位和加法计算任意两个32位无符号整数的乘法

2017-11-19 16:04
2385
汇编语言基于x86处理器 7.2.2二进制乘法 编程练习:用移位和加法计算任意两个32位无符号整数的乘法
INCLUDE Irvine32.inc

.code
main PROC
mov eax, 123
mov ebx, 37
call Humul
call WriteDec
call WaitMsg
exit
main ENDP

Humul PROC
;用移位和加法计算任意两个32位无符号整数的乘法
;乘数用eax,ebx接收
;积用eax保存
	mov ecx,32
	mov edx,0
L1:	
	shl ebx,1
	jc L2
	loop L1
	mov eax,edx ;之前没成功,缺少此步。1/2
	ret 		;之前没成功,缺少此步。2/2
L2:	
	push ecx
	push eax 	;此步用栈保存数据,甚妙。
	dec ecx 
	shl eax,cl
	add edx,eax
	pop eax 
	pop ecx 
	loop L1
	mov eax,edx 
	ret 
Humul ENDP

END main 




[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回