Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Assembler - zmienianie wczytanego ciągu znaków

Ostatnio zmodyfikowano 2015-03-30 14:52
Autor Wiadomość
cryuff
Temat założony przez niniejszego użytkownika
Assembler - zmienianie wczytanego ciągu znaków
» 2015-03-30 14:52:30
Muszę napisać program, który wczytany ciąg znaków zmieni na zapis dziesiętny i wypisze to co otrzymaliśmy, na razie działa mi echo, jak zrobić żeby dzięki skokom poruszał się po komórkach pamięci, które mają ulegać zmianie? To jest Linux x86, to powinno działać tak, że jeśli podamy np. AAA, to zwróci to w zapisie dziesiętnym: 65 65 65

.align 32

SYSEXIT = 1
SYSREAD = 3
SYSWRITE = 4
STDOUT = 1
STDIN =0
EXIT_SUCCESS = 0

.data

    bufor: .space 1000
    bufor_len = 10
    num: .int =10
    numm: .int =1


.text

    text: .ascii "Podaj ciag znakow"
    text_len = . - text

.global _start
_start:

    mov $SYSWRITE, %eax
    mov $STDOUT, %ebx
    mov $text, %ecx
    mov $text_len, %edx
    int $0x80

    mov $SYSREAD, %eax
    mov $STDIN, %ebx
    mov $bufor, %ecx
    mov $bufor_len, %edx
    int $0x80


ety_1:
    mov $bufor, %eax
    mov $al, %ecx
    imul $num, %ecx
ety_2:

    shr $numm, %eax
    mov $al, %ebx
    imul $num, %ebx
    add %ebx, %eax
    cmp %al,lf
    jne ety_2

    int $0x80

    mov $SYSWRITE, %eax
    mov $STDOUT, %ebx
    mov $bufor, %ecx
    mov $bufor_len, %edx
    int $0x80

    mov $SYSEXIT, %eax
    mov $EXIT_SUCCESS, %ebx
    int $0x80
P-129549
« 1 »
  Strona 1 z 1