Действия с BCD числами (ввод, деление, вывод) - Assembler

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

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

Всем здрасти! Помогите с составлением программы. Вот текст задачи: задать с клавиатуры два BCD числа. Одно число двухразрядное, другое одноразрядное. Выполнить деление этих чисел(1 на 2), предусмотрев 1-Вывод приглашения к заданию чисел 2-Вывод результата на экран. Мы застреваем на вводе, т.к. нам дали только теорию и сразу отправили на практику, ну и нифига не понимаем. Просьба помоч :3

Решение задачи: «Действия с BCD числами (ввод, деление, вывод)»

textual
Листинг программы
include io.asm
Sseg segment stack
db 256 dup (?)
Sseg ends 
 
Dseg segment 
a db 2 dup (?)
b db (?)
c db (?)
 
str1 db 0dh,0ah,'‚Введите а:$'
str2 db 0dh,0ah,'‚Введите b:$'
rez  db 2 dup (?)
str3 db 0dh,0ah,'Результат:$'
Dseg ends
 
Cseg segment 
ASSUME CS:Cseg,DS:Dseg,SS:Sseg
start:
MOV AX,Dseg
MOV DS,AX
MOV AX,0
 
LEA DX,str1
MOV AH,9H
INT 21H
MOV SI,1
INCH a[SI]
SUB a[SI],30h
DEC SI
INCH a[SI]
SUB a[SI],30h
 
LEA DX,str2
MOV AH,9h
INT 21h
inch b
sub b,30h
 
MOV SI,0
MOV AH,a[SI]
INC SI
MOV AL,a[SI]
aad
DIV b
MOV c,AL
 
mov DX,offset str3
outstr
mov SI,0
mov CX,2
 
m1:add c,30h
outch c
 
    
finish
Cseg ENDS
end start

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

11   голосов , оценка 3.818 из 5