Страница 1 из 1

вывод на экран

Добавлено: 18 апр 2009, 16:02
ррррррроман
всем добрый день, пишу прогу на паскале с ассемблерными вставками.
Возникла следующая проблема, как делать вывод на экран знакового числа размеров в слово
Вот листинг
program as;
var
a, b, c, d, x, y: integer;
begin
a:= 12;
b:= -3;
c:= 4;
d:= 3;
for x:= -3 to 4 do
begin
if x > 0 then
y:= 3*a*x
else
if x < 0 then
y:= (sqr(a) + x) div c
else
y:= (a + b) div d;
writeln('y= ', y);
end; readln;
asm
mov cx, 7
@l:
sub y, 3
cmp y, 0
jg @y3 {>0}
jl @y1 {<0}
je @y2 {=0}
@y3:
mov ax, 3
imul y
imul a
outint ax {здесь почему то ошибка}
newline


loop @l
end;
end.

Re: вывод на экран

Добавлено: 18 апр 2009, 23:15
somewhere
Интересно, почему же здесь ошибка )))) где вы видели инструкцию процессора outint?

Re: вывод на экран

Добавлено: 19 апр 2009, 20:33
ррррррроман
если можете, то попдробнее на этом месте, почему это не работает, ведь в книге по ассемблеру так написано, подскажите хотя бы в каком направлении копать. Очень нужно.

Re: вывод на экран

Добавлено: 20 апр 2009, 06:53
Kavabanga
нет в ассемблере инструкции outint делается через прерывание... скорее всего то что ты читал в книге это упрощенный код какой или там описана процедура outint, для сокращения листинга

Re: вывод на экран

Добавлено: 20 апр 2009, 09:45
somewhere
возможно в книге есть макрос outint macro и затем используется автором во всех примерах. Инструкции процессора outint не существует. Функции прерывания ОС для вывода чисел на экран тоже не существует. Зато в некоторых темах этого раздела она есть, ищите.

Re: вывод на экран

Добавлено: 20 апр 2009, 12:56
ррррррроман
вы правы, так оно и есть, еще разпросмотрел книгу с первой главы и обнаружил, что в самом начале авторы договорились для операций ввода-вывода использовать условные команды, которые описыватся в макросе IO.ASM в конце книги, сейчас сижу разбираюсь.
Всем спасибо, кто откликнулся на мою проблему.