Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Вывод результата вычитания на экран


Автор: Baltazar5000 18.12.2010, 02:46
Использую компилятор TASM, имеется код:
Код

.model     tiny                                  ; модель памяти, используемая для СОМ
.data
minuend    db    8
deduction    db    5
        .code                                        ; начало сегмента кода
        org        100h                                               ; начальное значение счетчика - 100h
start:  
mov    al, deduction
sub    minuend, al
jnc    end_p
neg    minuend
end_p: ret
end        start                                                 ; конец программы


Вопрос: как вывести результат вычитания на экран? Пробовал много вариантов получался вывод, но совсем не тот... Заранее благодарю

Автор: Mikl_ 18.12.2010, 09:31
Baltazar5000, org 100h, model tiny, окончание программы RET значит должен быть COM-файл
COM-файл состоит только из одного сегмента .code а у тебя и .code и .data и хочешь сказать что эта галиматья у тебя компилировалась и линковалась? 
Цитата
Пробовал много вариантов получался вывод, но совсем не тот... 
 
Приведи хоть один вариант 
ВЫВОД программа ни разу нерабочая, вывод на экран не делался, Baltazar5000 пытается вешать лапшу на уши не только своему преподавателю, но и нам. 
Вопрос Кто-то захочет тебе после этого помогать? Кайся сынку...

Автор: Baltazar5000 18.12.2010, 11:15
У меня компилится...
Пример вы вывода
Код


Код

        .model     tiny                                  ; модель памяти, используемая для СОМ
.data
minuend    db    '8'
deduction    db    '5'
dollar    db    '$'
        .code                                        ; начало сегмента кода
        org        100h                                               ; начальное значение счетчика - 100h
start:  

mov    al, deduction
sub    minuend, al
jnc    end_p
neg    minuend
end_p:

mov        ah,9                                            ; номер функции DOS - в АН
        mov        dx,offset minuend                         ; адрес строки - в DX
        int        21h                                                  ; вызов системной функции DOS
mov        ah,9                                            ; номер функции DOS - в АН
        mov        dx,offset dollar                         ; адрес строки - в DX
        int        21h                                                  ; вызов системной функции DOS
        ret                                                                 ; завершение СОМ-программы
        end        start                                                 ; конец программы



Но по идее эти переменные:
minuend    db    '8'
deduction    db    '5'
должны быть без кавычек

Автор: Baltazar5000 18.12.2010, 16:03
Mikl_, И запомни одну вещь я никогда не вру, если я написал что пробывал значит это так и есть.

Автор: iff 18.12.2010, 16:34
Было  уже масса тем о том как вывести число на экран. 
http://www.cyberforum.ru/assembler/thread54461.html

Автор: Baltazar5000 18.12.2010, 19:23
iff, Спасибо буду пробовать) Вроде понятно написано) Жаль только на автомат не успел...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)