两个大整数相乘的汇编语言实现
.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