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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2017, 21:19   #1
dimwow
Пользователь
 
Регистрация: 26.09.2016
Сообщений: 17
Радость TASM (Turbo assembler) - Посмотреть код, указать на ошибки

Укажите на ошибки пожалуйста, просто все вроде бы сделал, но выводит неизвестный символ вместо числа, а это значит что где-то ошибка или еще что-нибудь...
Надеюсь разберетесь в коде! Простите что без схемы или описания задания, при себе не имею, по памяти делал все, но суть задания такова:
Вычислить 'y1' и 'y2', затем сложить и записать в переменную 'y'.
Вот сам код программы (EXE).
Принимается любая критика, но с условием что она адекватная и по теме!
Множество точек для читабельности кода, в самой программе их нету!!!!!


Data segment
a db 5
x db 3
y db ?
y1 db ?
y2 db ?
Data ends

S segment stack 'stack'
Db 128 dup (?)
S ends

Assume cs:code, ds: data, ss:s

Code segment
Start:
mov ax,data
mov ds,ax

...........mov al,x
...........cbw
...........mov bl,3
...........div bl
...........cmp ah,2
...........je sled1

sled2:...mov al,9
...........mov y1,al
...........jmp short sled3

sled1:...mov al,a
...........mov bl,x
...........mul bl
...........mov y1,al

sled3:...mov al,a
...........cmp al,x
...........ja sled5

sled4:...mov al,a
...........sub al,x
...........;add al,30h (Коррекция по вычитанию! Выключил пока.)
...........mov y2,al
...........jmp short sled6

sled5:...mov al,a
............add al,x
............;sub al,30h (Снова коррекция, тоже выключил.)
............mov y2,al

sled6:....mov al,y1
............add al,y2
............mov y,al

mov dl,al
add dl,'0'
mov ah,2
int 21h
mov ax,4c00h
int 21h
Code ends
End start

Последний раз редактировалось dimwow; 13.03.2017 в 21:24.
dimwow вне форума Ответить с цитированием
Старый 14.03.2017, 10:26   #2
iborisov
Пользователь
 
Регистрация: 09.12.2016
Сообщений: 13
По умолчанию

Думаю, начать нужно с того, чтобы вспомнить, что должно быть на Выходе.
Варианты:
1. Цифра
2. Несколькозначное число в десятичном виде
3. Несколькозначное число в шестнадцатеричном виде
4. Другие варианты.
Не вдаваясь в подробности вычислений, у вас сейчас предполагается вывод одной цифры, предварительно как-то вычисленной в al и подготовленной в регистре dl. В принципе правильно, но добавление '0' сработает только для отображения в десятичном виде числа меньше 10. Числа больше 10, нужно выводить, например, поцифренно: если число больше 100, вывести сначала сотни, затем десятки, затем единицы.
iborisov вне форума Ответить с цитированием
Старый 02.06.2019, 03:19   #3
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 133
По умолчанию

y "mul" BBepxy "clc" coo6pa3u
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM Assembler prov6514 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 15 18.02.2017 13:19
График функции на языке TURBO ASSEMBLER - (tasm) максат Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 02.06.2011 14:37
Assembler-TASM biznessld Фриланс 4 13.10.2010 19:08
Посмотреть ошибки Sabl Помощь студентам 2 07.06.2010 19:04
поможете с Паскалем?(можете посмотреть в чем ошибки???) aiktz Помощь студентам 2 17.04.2009 14:10