Простейшая программа умножения, используя, допустим, команду mul - Assembler

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

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

Нужно написать простейшую программу умножения, используя, допустим, команду mul.
; Резервирoвание места под стек
sseg segment stack 'stack'
     dw 256 dup(?)
sseg ends
; Определение данных
data segment
; Сообщения пользователю
msg1 db 10,13,'Program of mul of two numbers'
     db 10,13,'Input first number: ','$'
msg2 db 10,13,'Input second number: ','$'
msg3 db 10,13,'Result = ','$'
data ends
; Сегмент кода
code segment
assume cs:code,ds:data,ss:sseg
start: mov ax,data 
       mov ds,ax  
       lea dx,msg1 
       call print_msg      
       call input_digit
       mov bl,al   
       lea dx,msg2  
       call print_msg      
       call input_digit 
       lea dx,msg3      
       call print_msg      
       call mu
       mov ah,4ch       
       int 21h            
 
print_msg proc
       push ax    
       mov ah,09h 
       int 21h    
       pop ax    
       ret 
print_msg endp
 
input_digit proc
input_again:
       mov ah,01h  
       int 21h    
       cmp al,'0' 
       jl input_again 
       cmp al,'9'          
       jg input_again      
       sub al,30h
       ret  
input_digit endp
 
mul proc
mov bl, 2
mov al, 3
mul bx
       pop ax             
       int 21h
       ret  
add_and_show endp
code ends
end start
в чем ошибка?

Решение задачи: «Простейшая программа умножения, используя, допустим, команду mul»

textual
Листинг программы
mul proc
mov bl, 2
mov al, 3
mul bx
pop ax 
int 21h
ret

Объяснение кода листинга программы

Вот что происходит в коде, оформленное в виде списка:

  1. Вход в процедуру mul
  2. Переменная bl получает значение 2
  3. Переменная al получает значение 3
  4. Выполняется операция умножения с использованием команды mul
  5. Выход из процедуры mul
  6. Выполняется команда pop ax (возвращает значение ax из стека)
  7. Выполняется команда int 21h (системный вызов)
  8. Выполняется команда ret (возвращает управление в вызывающую программу)

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

12   голосов , оценка 4.083 из 5