#5 22.03.07 19:13
Re: mov ax, [mem] vs mov ax, mem
Злые люди))
mov ax, mem в данном случае эквивалентна mov ax, 1222. То есть в ах помещается то, что содержится по смешению mem.
mov ax, [mem] - Помещает в ах то, что содержится по смещению 1222. То есть значение хранящееся в mem становится новым смещением.
mov ax, offset mem - помещает в ах смещение (адрес почти что) mem. В данном примере о его конкретном значении сказать ничего нельзя.
Offline
#6 22.03.07 19:25
Re: mov ax, [mem] vs mov ax, mem
нет как раз mov ax, mem работает точно так же как mov ax, [mem]
Просто в первом случае транслятор выдаёт вернинг типа
*Warning* Pointer expression needs brackets
А вот mov ax, offset mem работает точно так же как lea ax, [mem](lea ax, mem тоже с таким вернингом)
интересно просто в чем всё-таки различие.
Работу команд смотрел в дебагере)
Исправлено Jeka (22.03.07 19:26)
Offline
#7 22.03.07 19:52
Re: mov ax, [mem] vs mov ax, mem
нет как раз mov ax, mem работает точно так же как mov ax, [mem]
Хех, действительно. Забывать стал... Это когда регистровую адресацию используешь разница есть.
А вот mov ax, offset mem работает точно так же как lea ax, [mem](lea ax, mem тоже с таким вернингом)
Ну да, я вроде так и сказал.
Offline
#8 25.07.07 15:21
Re: mov ax, [mem] vs mov ax, mem
Draloskop написал(а):
нет как раз mov ax, mem работает точно так же как mov ax, [mem]
Хех, действительно. Забывать стал... Это когда регистровую адресацию используешь разница есть.
А вот mov ax, offset mem работает точно так же как lea ax, [mem](lea ax, mem тоже с таким вернингом)
Ну да, я вроде так и сказал.
Для большинства ассемблеров mov ax,[mem] и mov ax,mem -- _одна и та же_ инструкция, записанная разными способами, и говорить, что "они делают одно и тоже", неправильно. Flat Assembler будет транслировать mov ax,mem как другие ассемблеры mov ax,OFFSET mem.
p.s. Т.е. для Flat assembler mov ax,[mem] и mov ax,mem -- разные инструкции.
Исправлено Contestant (25.07.07 15:22)

