Label
В ax всегда же будет 0?
нулевой смысл
А если серьезно?
У тебя в ах ничего не помещено
в ax будет регистр ip
не знаете - не советуйте
А что туда помещаться
В ax будет адрес метки Label, але потім sub ax, offset Label должен оьнулить?
reg ax = reg ip на момент вызова подпрограммы
Там ще одна строка є
w[esp] = retAddr и esp+2 ax = retAddr и esp-2 ax - retAddr = 0 Да, будет ноль. Китайский код: видимость деятельности без самой деятельности. Потому что чем больше кода тем выше зарплата. Аххах.
Да но дальше в книге показано що в ax буде 1000
адрес метки после call
Это нужно для вычисления виртуального адреса программы. После pop ax в AX будет виртуальный адрес на метку Label, а после sub ax, offset от виртуального адреса на метку отнимется смещения метки в коде, и мы получим начальный адрес.
ОК, а чем виртуальний адрес отличається от offset?
Неужели? При компиляции call delta станет call 401014 например А offset delta тоже станет 401014. Константы вбитые жёстко в код. Тут не может быть вычислений.
Я же написал - offset это смещение. Относительно 0.
Нет, там будет относительный call. Опкод такой.
Может быть. Вполне. Я правда когда дизассемблирую то даже относительные адреса влсстанавливаю до абсолютных. Опкоды есть и по относительным и по абсолютным. Только отладчик развеет наши сомнения!
У меня никаких сомнений нет, я этот трюк с вычислением IP наизусть знаю, и там у call всегда будет относительный опкод. Хватит новичка путать в таких очевидных вопросах.
Ты хотя бы код вручную тоже собирай, отлаживай. Сам увидишь, что там вычисляется в AX.
Какраз Dos собирался запускать
Код покажи.
Просто call Label
sub как написал, покажи.
а теперь сделай тоже самое для винды в формате PE
Всё правильно работает. Ты в своём пространстве запускаешь, поэтому 0. У тебя org установлен.
Перекинешь в чужое пространство - там будет виртуальный адрес другой, будет уже не 103-103.
хотя там вроде тоже ничего не будет, не помню
Ты тут ещё не показал как у тебя call опкод выглядит.
Это для ДОС?
В ax будет адрес Label
А потом 0
Скинь всю книжку, интересно почитать, что они имеют в виду.
Книжка "Асемблер это просто" О. Калашников
Мне уже КТ все обяснив
Обсуждают сегодня