Марина Неткачева
Марина Неткачева

помогите разобраться с фрагментом кода на ASSEMBLER

1. почему, допустим, нельзя вместо *mov bx, offset a * записать *mov bx, a* ?
2. для чего используется offset вот тут: *mov bx, offset a * ?
3. почему тут *mov ah, ds:[bx] * используется *ds:[bx]*, ведь это вроде неявно выполняется?
4. изначально, у меня операнды 'a' и 'b' были размером в 1 байт (т. е. DB), а тут они записываются в bx, который имеет емкость 2 байта (фрагмент *mov bx, offset a 😉
5. после этого фрагмента (*mov bx, offset i*), значение 'a' - затирается?
6. в этом фрагменте, по моему мнению, вообще чепуха: *mov al, ds:[bx] ;иначе a <= b, вычисляем i1 al=i*, ведь bx, у нас уже было затерто (* mov bx, dx*) не так ли?

НБ
Наталья Бутенко

1,2,4. mov bx, offset a; означает занести в bx смещение, т. е. адрес a. Не "что? ", а "где? " Размер смещения - 2 байта.
3. да, может быть неявно. Автор хотел уточнить, зачем - спроси у автора
5. Нет, затирается bx (в него заносится адрес i)
6. Сложно сказать, не зная, что этот фрагмент ДОЛЖЕН делать.

Андрей Соколиков
Андрей Соколиков

Хуйня какая-то... Тут все значения можно менять...

Похожие вопросы
Assembler лаба не могу разобраться
Помогите найти фрагмент в коде php.
пожалуйста помогите с кодом assembler для МП i8086
Помогите пожалуйста разобраться с кодом на сайте
Где ошибка в коде assembler!!!
Помогите разобраться с кодом
Ассемблер. Помогите разобраться с кодом
Помогите разобраться с кодом (Pascal):
Помогите разобраться HTML-код
Помогите разобраться с кодом PHP