![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
Altair |
![]() ![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Следующий код:
MOV AL,00 выполняется в Паскале, если его поместить в ASM {...} END; Теперь если перевед это в машинный код, получаем: Цитата -U 10A1:0100 B000 MOV AL,00 10A1:0102 B707 MOV BH,07 10A1:0104 B90000 MOV CX,0000 10A1:0107 BA4F18 MOV DX,184F 10A1:010A CD10 INT 10 (это я скопировал из окна DEBUG) Напишем программу на паскале: BEGINПоявляется сообщение об ошибке: Цитата Runtime error 104 at 0000:0059. А если в концеприписать выход из прерывания: INLINE($B000/$B707/$B90000/$BA4F18/$CD10/$CE); То сообщение об ошибке: Цитата Runtime error 104 at 0000:005A.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
Shadow |
![]()
Сообщение
#2
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
при таком коде INLINE получается смещение если посмотреть его в отладчике
то будет виднно как смещается значения и т.о. код будет уже не таким и соответственно прерывание не то, а скажем INT 13h шутка ![]() было но может получиться ------------ INLINE($b4/$00/$b0/$00); а ошибки у меня они соответственно не такие Сообщение отредактировано: volvo - 6.11.2009 20:14 -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Shadow |
![]()
Сообщение
#3
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
Фаронов Турбо =Паскаль в Подлиннике= стр 233
глава 11.2 Использование встроенных машинных кодов 3 абзац сверху Цитата Элемент кода будет генерировать 1 байт кода, если этот элемент состоит только из целых констант и значение результата не превышает мощности 1 байта, т.е. находится в пределах 0...255. Если значение превышает 255 или элемент кода содержит ссылку на счетчик адреса, генерируется 2 байта..... -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Altair |
![]()
Сообщение
#4
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Угу, понял, спасибо.
Во-первых я забыл в регистр AH поместить код функции :p2: Во-вторых я не знал, что надо генерировать элементы кода по 1 байту. РАБОТАЕТ ТЕПЕРЬ! :p9: -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 0:32 |