Chcę aby mój program wczytywał znaki ze standardowego wejścia i wszystkie sumował w 'kodd'.
Jednak kiedy wpisuje np. wartość 23 dodaje wartość ascii tylko pierwszego znaku tj. 2 pomijając 3
Drugi problem to jak zamienić wartość przechowywaną w kodd na kod szesnastkowy?
.data
kod: .space 1000
kodd: .long 0
kod_roz = 10000
.text
text: .ascii "Podaj ciag znakow zakoncz enterem"
text_len = . -text
.align 32
SYSEXIT=1
SYSREAD=3
SYSWRITE=4
STDOUT=1
STDIN=0
EXIT_SUCCESS=0
.global _start
_start:
mov $4, %eax
mov $1, %ebx
mov $text, %ecx
mov $text_len, %edx
int $0x80
s:
mov $3, %eax
mov $0, %ebx
mov $kod, %ecx
mov $kod_roz, %edx
int $0x80
mov kod(%esi,1),%bl #poczatek
cmp $'\n',%bl
je koniec
petla:
mov kod(%edi,1),%bl #koniec
add %ebx, kodd
je s
fm:
inc %edi
jmp s
koniec:
mov $1,%eax
mov $0,%ebx
int $0x80