оптимизация кода |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
оптимизация кода |
Dark |
28.05.2003 2:17
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Вопрос в следующем, как лучше, и чем(в сравнении):
Занесение в регистр es адреса буфера видеопамяти:
и как мне в асме присвоить значение функции, т.е. вместо function a: byte; чтото типа function a:byte; -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Dark |
28.05.2003 2:19
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
извините, во втором случае второго вопроса имелось ввиду
чтото типа function a:byte; -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
GLuk |
28.05.2003 16:18
Сообщение
#3
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
Значение типа Byte - Word, возвращается в AL - AX соответственно. Все это очень легко можно посмотреть в TD. Остальные посмотри сам... ;)
А по поводу эффективности кода - в зависимости от проца (лично я всегда употребляю mov ax,0A000h) А размер меньше у push ... Смотри расклад тиков на 286-386-486 процы (на 8086 push 0A000h не покатит) Цитата ++++++++++++++++++++++++++ + Command + Size + 286-386-486 + ++++++++++++++++++++++++++ PUSH 0A000h (3 байта): 3-2-1 POP ES (1): 5-7-3 ---------------------------------------- MOV AX,0A000h (3): 2-2-1 MOV ES,AX (2): 2-2-3 |
Shadow |
28.05.2003 17:50
Сообщение
#4
|
Lonely_Raven Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: 1 |
:D
-=-= везде употребляется mov ax,0a000h Push иногда когда выбора другого нету -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Dark |
31.05.2003 16:07
Сообщение
#5
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Посмотрел я насчет возврата в функцию, и увидел следующее,
1. При вызове в функцию резервируются в стеке 4+размер значения функции байта. 2. Тогда, в BX находится адрес возврата в стеке 3. а в SP - адрес, куда кладется то самое, искомое значение т.е. function a:word; 4. если ничего не возвращать, то вернется значение CS. Спасибо всем! -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Текстовая версия | 28.09.2024 20:01 |