对于代码高尔夫,我尝试使用scasb
来阅读我自己的程序来源。但是,在es:edi
和64位模式rdi
的32位模式下,即使使用es = 0
,我也总是会遇到段错误。所以我想知道:这有可能吗?
以下是一些示例代码。再次注意str
位于.text
,而不是.data
。
.section .text
.globl main
main:
mov str, %rdi # load string
scasb # cmp edx, (rdi)
ret
str: .byte 0x01,0x02,0x03,0x04,0x05