Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

При этом: 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 Кб, 10 просмотров)

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


03:44.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru