IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> TP7 проблема компиляции
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Максим

Репутация: -  1  +


Здравствуйте, не подскажите ли Вы, как скомпилировать
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
Заранее благодарен


--------------------
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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


Занеси это значение в регистр и умножай на него...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Максим

Репутация: -  1  +


А Вы нен могли бы привести работающий код этой процедуры?
Заранее благодарен.

Сообщение отредактировано: St@senk@ -


--------------------
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, не знаю, насколько он работающий, но то что должен компилироваться - точно:

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;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Вместо mul в данном случае лучше использовать тот факт, что:
y*320=y shl 8 + y shl 6
будет гараздо быстрее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.09.2020 19:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name