Size: a a a

Ассемблер

2021 April 14

CM

Charlie Mumble in Ассемблер
Хорошо, тогда вопрос: как указать, чтобы программа закрылась?
источник

CM

Charlie Mumble in Ассемблер
Проблема решена.
источник

CM

Charlie Mumble in Ассемблер
Добавил прыжки.

Добавил метку на КейПрессед за этими функциями и прыгаю туда после того, как вызываю)
источник

CM

Charlie Mumble in Ассемблер
Спасибо)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
покажи
источник

CM

Charlie Mumble in Ассемблер
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
все равно неправильно
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
чтоб закрыть программу нужно вызвать прерывание закрытия програмы или, если уж ты поьлзуешься макросами, ищи этот макрос по типу exit
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
а так она у тя все равно неправильно завершается
источник

CM

Charlie Mumble in Ассемблер
источник

CM

Charlie Mumble in Ассемблер
Теперь есть)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
да
источник

A

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

CM

Charlie Mumble in Ассемблер
Пасиб)

А еще вопрос. А можно как-то запихнуть book1 в регистр какой-нибудь? и в функции работать с этим регистром, а не непосредственно с этой структурной переменной
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ты про адрес или содержимое памяти?
источник

CM

Charlie Mumble in Ассемблер
Ну, тип так:

В программе:
- поместить в регистр bx переменную book1
- вызвать функции Inp, Outp

В функциях:
- выполнять все те функции, которые у меня описаны, только уже не с book1 и ее полями, а с bx и его полями
источник

CM

Charlie Mumble in Ассемблер
Тобишь, сделать функции универсальными: чтобы они работали с любой переменной типа Library
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
у тя твоя переменная не поместится в регистр, ибо их размер разный. регистр 2байта, а твоя переменная сколько? можно через смещения полей, но на тасме я не знаю как так сделать. наверное типа
mov bx,book1
print [bx+library.name]
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
за синтаксис не ручаюсь
источник

CM

Charlie Mumble in Ассемблер
Да я думаю что не стоит так заморачиваться, думаю, и так пойдет)

В любом случае спасибо)
источник