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

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

2017-11-19 16:04
2321
汇编语言基于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 




[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

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