🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
6 messages
6 total messages Started by "Remek" Sat, 23 Oct 2010 23:07
Pobieranie danych ze zmiennej
#2352
Author: "Remek"
Date: Sat, 23 Oct 2010 23:07
37 lines
545 bytes
Witam

Windows 32 bit. Masm32.

Czego� nie rozumiem. Prosz� o wyja�nienie:

Mam dekraracje:

zmienna dd?
Bufor   db 128h dup(0)

instrukcja:

mov eax, zmienna

kopiuje do eax dworda z adresu wskazywanego przez zmienn�. To samo wykonuje:

mov eax, [zmienna]

r�wnie� instrukcje:

mov eax, dword ptr Bufor
mov eax, dword ptr [Bufor]

robi� to samo.

Czy�by Masma nie obowi�zywa�y regu�y asemblera? Adres zmiennej mog� pobra�
tylko przez:

 lea zmienna
 lea Bufor

Co� zapomnia�em, przeoczy�em?

Pozdrawiam  Remek


Re: Pobieranie danych ze zmiennej
#2353
Author: 0xF
Date: Mon, 25 Oct 2010 05:07
2 lines
25 bytes
mov eax, offset zmienna

Re: Pobieranie danych ze zmiennej
#2354
Author: "Remek"
Date: Mon, 25 Oct 2010 17:04
17 lines
389 bytes
Uzytkownik "0xF" napisal:

> mov eax, offset zmienna

Zapomnialem o tym wspomniec. To spos�b na pobranie adresu. A co z
identycznym dzialaniem instrukcji:

mov eax, zmienna
mov eax, [zmienna]

Okazuje sie, ze nawiasy sa niepotrzebne.
Wczesniej napisalem nieprawde. Nie wiem o czym myslalem. Obie instrukcje
kopiuja do eax zawartosc zmniennej oczywiscie. Przepraszam za pomylke.

Remek


Re: Pobieranie danych ze zmiennej
#2355
Author: "Bogdan (bogdro)
Date: Wed, 27 Oct 2010 19:02
26 lines
951 bytes
W dniu 25.10.2010 17:04, Remek pisze:
> Uzytkownik "0xF" napisal:
>
>> mov eax, offset zmienna
>
> Zapomnialem o tym wspomniec. To sposób na pobranie adresu. A co z
> identycznym dzialaniem instrukcji:
>
> mov eax, zmienna
> mov eax, [zmienna]
>
> Okazuje sie, ze nawiasy sa niepotrzebne.

 Tak to już jest w MASMie i w TASMie (w trybie zgodności z MASMem).
Taka cecha kompilatora. Podobnie jak cecha NASMa i FASMa, że te dwie
instrukcje robią w nich co innego (pierwsza pobiera adres, druga -
zawartość).
 Może dla wygody, żeby wyglądało "bardziej logicznie", bo jeśli
programista pisze "mov eax, zmienna", to "pewnie chciał pobrać zawartość".

--
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org   www.TorProject.org   Soft (EN): miniurl.pl/bogdro-soft

Re: Pobieranie danych ze zmiennej
#2356
Author: Bernard
Date: Wed, 27 Oct 2010 20:31
38 lines
1067 bytes
On 2010-10-27 19:02, Bogdan (bogdro) wrote:
> W dniu 25.10.2010 17:04, Remek pisze:
>> Uzytkownik "0xF" napisal:
>>
>>> mov eax, offset zmienna
>>
>> Zapomnialem o tym wspomniec. To sposób na pobranie adresu. A co z
>> identycznym dzialaniem instrukcji:
>>
>> mov eax, zmienna
>> mov eax, [zmienna]
>>
>> Okazuje sie, ze nawiasy sa niepotrzebne.
>
>   Tak to już jest w MASMie i w TASMie (w trybie zgodności z MASMem).
> Taka cecha kompilatora. Podobnie jak cecha NASMa i FASMa, że te dwie
> instrukcje robią w nich co innego (pierwsza pobiera adres, druga -
> zawartość).
>   Może dla wygody, żeby wyglądało "bardziej logicznie", bo jeśli
> programista pisze "mov eax, zmienna", to "pewnie chciał pobrać zawartość".
>

Nie macie odwagi napisać otwartym tekstem, że składnia MASM/TASM/Intel
jest po prostu sp...

Przykład:

x equ 100
   org x
y dw	200

mov ax, x	; ładuje stałą 100
mov bx, [x]	; ładuje daną spod adresu 100
mov cx, y	; ładuje daną spod adresu 100
mov dx, [y]	; ładuje daną spod adresu 100

W NASM tego problemu nie ma.

Re: Pobieranie danych ze zmiennej
#2357
Author: "Remek"
Date: Sun, 31 Oct 2010 19:05
12 lines
387 bytes
Użytkownik "Bogdan (bogdro)" napisał:

>  Tak to już jest w MASMie i w TASMie (w trybie zgodności z MASMem).

Rozumiem, że potwierdzasz moje obserwacje? Przyjmuję, że Masm32 tak ma i
przestaję wydziwiać. Dla ścisłości tylko dodam, że ta cechja dotyczy Masm32
i Tasm32. Wcześniejsze 16 bit wersje traktują te instrukcje różnie tzn. tak
jak w teorii.

Pozdrawiam  Remek


Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads