我希望我的程序从标准输入读取字符并在kodd
中总结。
然而,当我进入时,例如。值23,我只保存了第一个字符的以下ASCII值,即。 2没有3
第二个问题是如何将kodd
中存储的值转换为十六进制代码?
还有如何正确初始化esi
和edi
我想到mov $kod, %edi
但是esi
呢?
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