Перемножить два больших числа - Assembler

Узнай цену своей работы

Формулировка задачи:

Проблема состоит в том что надо перемножить два больших числа(из инструментов у меня lzasm+insight и всё это под freedos-oм)
Operand1 equ 0B5E0H
Operand2 equ 0C137H
model small
p586                  
stack 100h               

codeseg
startupcode 
    mov ax,[Operand1]     
    mul [Operand2]        
    mov di,ax           
    mov si,dx          
    sub cx,cx           
    sub bx,bx           
 
    mov ax,[Operand1+2]    
    mul [Operand2]        
    add si,ax           
    adc cx,dx           
 
    mov ax,[Operand1]      
    mul [Operand2+2]       
    add si,ax           
    adc cx,dx          
    adc bx,bx          
 
    mov ax,[Operand1+2]   
    mul [Operand2+2]       
    add cx,ax           
    adc bx,dx          
 
    mov [c],di      
    mov [c+2],si    
    mov [c+4],cx    
    mov [c+6],bx    
 
    exitcode 0
;---------------------------------------------------------------------
dataseg
 
c DW  ?
END
Вот что выдаёт отладчик(у кого есть возможность можете проверить числа) https://yadi.sk/i/Eva3mnUzgFdVv Вопрос правильно ли идёт умножение двух чисел 0B5E0*0C137

Решение задачи: «Перемножить два больших числа»

textual
Листинг программы
    Model   Tiny
    .Code
    Org 100h
Start:
        mov ax, word ptr ds:Operand_1
        mul word ptr ds:Operand_2
        mov word ptr Result, ax
        mov cx, dx
        mov ax, word ptr ds:Operand_1+2
        mul word ptr ds:Operand_2+2
        mov si, ax
        mov di, dx
        mov ax, word ptr ds:Operand_1+2
        mul word ptr ds:Operand_2
        add cx, ax
        adc si, dx
        mov ax, word ptr ds:Operand_1
        mul word ptr ds:Operand_2+2
        add cx, ax
        adc si, dx
        adc di, 0
        mov word ptr ds:Result+2,cx
        mov word ptr ds:Result+4,si
        mov word ptr ds:Result+6,di
        ret
Operand_1   dd  12345678h
Operand_2   dd  87654321h
Result      dq  ?
    End Start

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы