- 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