Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2016, 20:25   #1
Tobisom
Новичок
Джуниор
 
Регистрация: 29.03.2016
Сообщений: 1
По умолчанию Помогите найти ошибку в коде ассемблер (вычислить значение выражения)!

Всем привет, написал код программы на ассемблер, которая решает вот такое уравнение:

При этом: a,c,d нужно ввести с клавиатуры.

Все действия провожу в программе - Far.

После вводе значений: a,c,d, выводится ошибка. Пишет, что при решении встречается значение - ноль. Помогите, может кто-нибудь увидит ошибку, которую не заметил я.
Сам код:

Код:
SAS segment stack                                                                
db 128 dup (?)
SAS ends
DO segment
a3 db 3,(?),3 dup (?);Буфер для ввода с клавиатуры
c3 db 3,(?),3 dup (?);Буфер для ввода с клавиатуры
d3 db 3,(?),3 dup (?);Буфер для ввода с клавиатуры

a2 db (?)
c2 db (?)
d2 db (?)
f2 db (?)
w1 db 2

a1 db 0dh,0ah, 'vvedite а,$'  ;Текстовая строка
c1 db 0dh,0ah, 'vvedite c,$'
d1 db 0dh,0ah, 'vvedite d,$'
DO ends
CUM segment
assume ss:SAS, ds:DO, cs:CUM
start:
push ds   
MOV ax,DO
MOV ds,ax
lea dx,a1 
MOV ah,9H
INT 21H   ; Ввод строки а1
lea dx,a3
mov ah,0ah
int 21H   ;ввод с клавиатуры  a
xor ax,ax  ;обмен зачений двух переменных
mov si,1
cmp a3[si],2  ;Создание цикла
jne m1
inc si
mov ah,a3[si]
inc si
m1: mov al,a3[si]
and ax,0f0fh
aad            ;Преобразование в двоичную форму


lea dx,c1 
MOV ah,9h
INT 21H   ; Ввод строки c1
lea dx,c3
mov ah,0ah
int 21H   ;ввод с клавиатуры c
xor AX,AX  ;обмен значений двух переменных
mov si,1
cmp c3[si],2
jne m2
inc si
mov ah,c3[si]
inc si
m2: mov al,c3[si]
and ax,0f0fh
aad


lea dx,d1 
MOV ah,9H
INT 21H   ; Ввод строки d1
lea DX,d3
mov ah,0ah
int 21H   ;ввод с клавиатуры d
xor AX,AX  ;обмен значений двух переменных
mov SI,1
cmp d3[SI],2
jne m3
inc si
mov ah,d3[si]
inc si
m3: mov al,d3[si]
and ax,0f0fh
AAD


mov AL,c1
MUL w1
SUB AL,d1
ADD d1,23
MOV BX,4
mov AL,a1
DIV BX
mov d2,AL
DEC d2
mov AL,d1
DIV d2

MOV AX,4c00h
int 21H

CUM ENDS
end start


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.
Изображения
Тип файла: jpg уравнение.jpg (14.2 Кб, 138 просмотров)

Последний раз редактировалось Serge_Bliznykov; 30.03.2016 в 00:02.
Tobisom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в коде! Igrohim Общие вопросы Delphi 10 29.12.2014 00:01
Помогите найти ошибку в коде NYork Помощь студентам 3 16.12.2014 19:45
Дана строка, арифметические выражения вида A x B. Вычислить значение выражения Un1q Паскаль, Turbo Pascal, PascalABC.NET 4 09.12.2013 14:47
помогите найти ошибку в коде Saka Помощь студентам 6 07.12.2009 11:43
Помогите найти ошибку в коде. Serror Общие вопросы C/C++ 7 04.10.2009 00:44