Помощь - Поиск - Пользователи - Календарь
Полная версия: TP7 проблема компиляции
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
St@senk@
Здравствуйте, не подскажите ли Вы, как скомпилировать
procedure putpixel2 (x,y:word;col:byte);assembler;
asm
pusha
mov ax,0A000h
mov es,ax
mov ax,[y]
mul 320
mov di,ax
add di,[x]
mov al,[col]
cld
stosb
popa
end;

а то у меня по каким-то причинам Turbo Pascal 7, пишет ошибку в строке mul 320
Заранее благодарен
volvo
Цитата
а то у меня по каким-то причинам Turbo Pascal 7, пишет ошибку в строке mul 320
По вполне понятным, кстати, ведь:
Цитата
В качестве операнда-сомножителя команды mul можно указывать регистр (кроме сегментного) или ячейку памяти; не допускается умножение на непосредственное значение.


Занеси это значение в регистр и умножай на него...
St@senk@
А Вы нен могли бы привести работающий код этой процедуры?
Заранее благодарен.
volvo
Ну, не знаю, насколько он работающий, но то что должен компилироваться - точно:

procedure putpixel2 (x,y:word;col:byte);assembler;
const a: word = 320;
asm
pusha
mov ax,0A000h
mov es,ax
mov ax,[y]
mul a
mov di,ax
add di,[x]
mov al,[col]
cld
stosb
popa
end;
Malice
Вместо mul в данном случае лучше использовать тот факт, что:
y*320=y shl 8 + y shl 6
будет гараздо быстрее.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.