Size: a a a

2021 July 13

GG

George Glebov in pro.asm
В остальных случаях, когда мы пишем word ptr (как в твоём корректном примере), это означает, что мы в регистр назначения пишем данные другой размеренности, которые получаем по указателю (в квадратных скобках)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
перевод верный. но я то про смысл сего действия говорю, а не про перевод.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
просто это слово "указатель" можно явно перепутать с типом пеменной из си, где указатель на память занимает место в памяти, в асме тоже можно создать переменную и называть ее указателем, в которой будет храниться адрес. поэтому я разделяю эти понятия.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Если мы переключились в 32-битный Unreal Mode и возникает IRQ  или мы вызываем INT, то код переключается на время обработки прерывания в 16-битный режим что ли?
Ковыряю Kelvar (by Tomasz Grysztar), там 32-битный код перемешан с int'ами (10h, 21h, 33h...), и никаких предварительных ласк там нет.
источник

s

s54816 in pro.asm
В смысле нет? source/system/irq.inc, первые несколько строк.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Предварительных - это перед int 21h, к примеру. А первые несколько строк - это как раз переход в 32-битный режим кода в начале обработчика IRQ и возврат в 16-битный в конце.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Код int 21h очевидно 16-битный. Если мы делаем вызов из 32-битного кода, то он будет работать только при переключении обратно в 16, иначе никак.
источник

d

disba1ancer in pro.asm
раз дали доступ продублирую тут
что вложенно в понятие "32ух битный unreal mode"? емнип, для вызова обычных прерываний под unreal mode ничего не надо, всё также как и в real mode, но есть нюансы
источник

s

s54816 in pro.asm
А посмотри unreal.inc:197. Вот это копипастится для каждого прерывания, оно и делает магию.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Сегмент кода 32-битный, т.е. как в винде, где inc ax имеет префикс 66h, а inc eax не имеет.
источник

d

disba1ancer in pro.asm
это довольно странно...
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Точно! Спасибо 😉
источник

d

disba1ancer in pro.asm
call  init_error
db  'processor is not able to enter 32-bit real mode',0
прикольный трюк, можно передавать передавать текст без регистров, но с этим надо аккуратно...
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Так часто делают.
Тот же fasm так строки передаёт в параметрах в invoke.
источник

d

disba1ancer in pro.asm
я даже не догадывался, возьму на вооружение
источник

s

s54816 in pro.asm
Так он же так перед смертью только, он возвращаться не собирается.
источник

d

disba1ancer in pro.asm
правда я не пойму есть ли какой смысл в 32ух битном анриле кроме избавления от префиксов
источник

d

disba1ancer in pro.asm
мне для этого и надо
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Ну там вообще нет проблем сделать типа такого:

 pop esi
 jmp load
.print:
 int 29h
.load:
 lodsb
 test al,al
 jnz .print
 jmp esi  ; вместо ret
источник

s

s54816 in pro.asm
Можно, да. Но как-то чересчур уже, тогда уж проще вот это стандартное call @f ... db ... @@: call func.
источник