asembler - operacje bitowe

lukasz18101988
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 13 kwie 2008, o 22:37
Płeć: Mężczyzna
Lokalizacja: małogoszcz

asembler - operacje bitowe

Post autor: lukasz18101988 »

napisać program w asemblerze (najlepiej nasm, ale mogą być inne) taki aby:
- wprowadza się 2 liczby (dziesiętnie ,32 bity )
- na ekran mają zostać wyświetlone wyniki operacji na bitach : AND, OR, XOR, NOT (wyniki również w systemie dziesiętnym).


Napisałem sam program, ale tylko dla AND i OR. Potrafię dla każdych dwóch, ale dla czterech nie mam pojęcia co mam zrobić (brakuje mi rejestrów ) ,myślałem nad pętlami ale nic nie wymyśliłem. proszę o pomoc

Kod: Zaznacz cały

%include "asm_io.inc"

segment .data
message1 db "Podaj liczbe: ",0 
message2 db "AND: ",0
message3 db "OR: ",0



segment .bss
liczba resd 1


 

segment .text
        global  _asm_main
_asm_main:
        enter   0,0               
        pusha

	mov eax, message1
	call print_string
	call read_int             ; wczytaj pierwsza liczbe do eax
        mov [liczba], eax
	mov   ebx, [liczba]
	mov   ecx, eax

	mov     eax, message1
        call    print_string
        call    read_int        ; wczytaj druga liczbe do eax
        mov     [liczba], eax
	mov     edx, eax


	and   ebx, [liczba]      ; AND
 

        mov eax, message2
	call print_string
        
        mov     eax, ebx

        call    print_int
        call    print_nl

	
	or    ecx, edx           ; OR

	mov eax, message3
	call print_string
	
	mov   eax, ecx
	call print_int
	call print_nl

        popa
        mov     eax, 0            
        leave                     
        ret




[/quote]
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

asembler - operacje bitowe

Post autor: Fibik »

Możesz zapisać obie liczby w pamięci, tak jak tę jedną.
ODPOWIEDZ