汇编语言:大数乘法

这篇博客详细介绍了如何使用汇编语言,特别是MASM32,来实现两个大整数的乘法操作,揭示了底层计算的原理和步骤。

两个大整数相乘的汇编语言实现

.386
.model flat,stdcall
option casemap:none

includelib msvcrt.lib
include msvcrt.inc
printf     PROTO C :dword, :VARARG
scanf	   PROTO C :ptr sbyte,:vararg
	   
.data
szFmt1    byte   '%d',0
szFmt2    byte   'Please input the lenth of NumA',0ah,0
szFmt3    byte   'Please input NumA',0ah,0
szFmt4    byte   'Please input the lenth of NumB',0ah,0
szFmt5    byte	 'Please input NumB',0ah,0
szFmt	byte	'%d',0
NumA		byte  '5552411648486158345165841513184515313515465435131548543413135485468543513513543541513515366661651295'
NumB		byte  '3331513184515313515465435131548543413135485468543513511513184515313515465435131548543413188889878396'
A			byte  100 dup(?)
B			byte  100 dup(?)
Result      dd    300 dup(?)
LenA        dd  100
LenB        dd  100
Max			dd 300
ten         dd  10

.code

start	proc
  
	
     mov al,'0'
     mov ecx,LenA
	 mov ebx,0
e1:  sub NumA[ebx],al  ;第一个操作数 -  0
     mov dl,NumA[ebx]
	 mov A[ecx-1],dl     ;倒序存放到A
     inc ebx
	 loop e1
	 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值