|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.03.2017, 21:19 | #1 |
Пользователь
Регистрация: 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. |
14.03.2017, 10:26 | #2 |
Пользователь
Регистрация: 09.12.2016
Сообщений: 13
|
Думаю, начать нужно с того, чтобы вспомнить, что должно быть на Выходе.
Варианты: 1. Цифра 2. Несколькозначное число в десятичном виде 3. Несколькозначное число в шестнадцатеричном виде 4. Другие варианты. Не вдаваясь в подробности вычислений, у вас сейчас предполагается вывод одной цифры, предварительно как-то вычисленной в al и подготовленной в регистре dl. В принципе правильно, но добавление '0' сработает только для отображения в десятичном виде числа меньше 10. Числа больше 10, нужно выводить, например, поцифренно: если число больше 100, вывести сначала сотни, затем десятки, затем единицы. |
02.06.2019, 03:19 | #3 |
Форумчанин
Регистрация: 05.09.2016
Сообщений: 134
|
y "mul" BBepxy "clc" coo6pa3u
Немного о GoAsm.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |