* i div

0

czy mi się wydaje , czy asembler naprawdę nie ma poleceń mnożenia i dzielenia, tylko trzeba samemu sobie napisać? [hurra]

0

Assembler w Procesorach x86 ma instrukcje mnozenia poszukaj na necie

NP:

http://www.asembler.host.sk/index.php

0

mnozenie:

mov al,10h
mov ah,50h
mul ah

wynik, czyli 500h bedzie zapisany w ax

dzielenie:

mov ax,37
mov dl,12
div dl
wynik, czyli 3 znajdzie sie w al, natmiast reszta z dzielenia, czyli 1 w rejestrze ah

0

Ja jeszcze coś dodam :
Mnożenie:
MUL (BYTE) - mnoży AL. * (BYTE) wynik w AX
MUL (WORD) ? mnoży AX * (WORD) wynik w DX:AX
Gdy procesor 386 lub wyższy:
MUL (DWORD) ? mnoży EAX * (DWORD) wynik w EDX : EAX

Dzielenie :
Div (BYTE) - dzieli AX / (BYTE) wynik : AL -całości AH- Reszta
DIV (WORD) - dzieli DX : AX / (WORD) wynik : AX ? całości DX ? Reszta
Gdy procesor 386 lub wyższy :
DIV (DWORD) ? dzieli EDX : EAX / (DWORD) wynik : EAX ? całości; EDX ? Reszta

Jeśli mnożysz przez Potęgę dwójki np. 256 to 2 do potęgi 8 w skrócie 2^8 wystarczy że wykonasz przesunięcie na bitach SHL AX, 8 pomnoży AL. Przez 256 i wynik będzie w AX
Podobnie jest w drugą stronę jeśli chcemy podzielić przez np. 8 czyli 2^3 to wykonujemy przesunięcie w drugą stronę czyli w prawo SHR AX, 3 podzieli AX przez 8 i wynik umieści w AX

0

Dream Maker - zadajesz dziesiątki idiotycznych pytań a chcesz napisać własny kompilator? [rotfl]

Też zaczynałem Asma w Twoim wieku, ale nikogo nie stręczyłem pytaniami czy jest instrukcja do mnożenia... sam to znalazłem. Znajdź sobie jakiś kurs, przeczytaj go, pisz testowe aplikacje - nawet takie, które mają kilkanaście instrukcji i badaj jak działają. Dopiero potem przy poważniejszych problemach uderzaj na forum.

Aha... i odpuść sobie pisanie swojego kompilatora...

0

kto ci powiedział, że chcę?? po prostu chcę się nauczyć asma, to takie dziwne? :-|

//sam tak napisałeś w jednym z wątków - m.M

1 użytkowników online, w tym zalogowanych: 0, gości: 1