Assembler - zmienianie wczytanego ciągu znaków
Ostatnio zmodyfikowano 2015-03-30 14:52
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
|
|
« 1 » |