gpt4 book ai didi

linux - 获取 ASCII 数字值

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:46 24 4
gpt4 key购买 nike

大家好,我遇到了一些烦人的问题,所以我尝试编写一个代码来反转小字符串的顺序

我已经知道了:

    .section    .data   
string:
.ascii "AAAAAABBBBBB"



length:
.quad . -string #Dot = 'here'

.section .text


.globl _start #Make entry point visible to linker
_start:
movl $4, %eax #4=write
movl $1, %ebx #1=stdout
movl $string, %ecx
movl length, %edx
int $0x80 #Call Operating System

movl length,%edi #counter
shrl $1,%edi #half of string
movl $0,%ecx #start from index one
movl length,%edx #start from end

reverse:
movl string(,%ecx,1),%eax
movl string(,%edx,1),%ebx
movl %eax,string(,%edx,1)
movl %ebx,string(,%ecx,1)
inc %ecx
dec %edx
dec %edi




loop reverse #looping

movl $4, %eax #4=write
movl $1, %ebx #1=stdout
movl $string, %ecx
movl length, %edx
int $0x80 #Call Operating System



movl $0, %ebx #Make program return syscall exit status
movl $1, %eax #1=exit
int $0x80 #Call System Again

而且它不能正常工作,因为在 gbd 中我在制作之后在寄存器中得到了错误的值

movl string(,%ecx,1),%eax or the next steps I think there should be in %eax value for A letter but its doesn't any ideas ?

  • 在 64arch 工作,但模拟为 --32,所以我猜这是我的寻址问题

最佳答案

你应该处理字节而不是长,所以使用带有 8 位寄存器的 movb(例如 albl)。此外,LOOP 指令会自动使用 ECX,您的意思可能是 JNZ 重复执行直到 EDI 达到零。

关于linux - 获取 ASCII 数字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com