当前位置: 技术问答>linux和unix
请教,X86汇编转AT&T汇编,急急
来源: 互联网 发布时间:2015-09-11
本文导语: 请问如下的X86汇编应该如何用AT&T语法来表示,在下汇编太差,谢谢大家了 mov ax,#0x0000 mov ds,ax lds si,[4*0x41] mov ax,#INITSEG mov es,ax mov di,#0x0080 mov cx,#0x10 rep movsb | 把两个参数倒过来基本上就差...
请问如下的X86汇编应该如何用AT&T语法来表示,在下汇编太差,谢谢大家了
mov ax,#0x0000
mov ds,ax
lds si,[4*0x41]
mov ax,#INITSEG
mov es,ax
mov di,#0x0080
mov cx,#0x10
rep
movsb
mov ax,#0x0000
mov ds,ax
lds si,[4*0x41]
mov ax,#INITSEG
mov es,ax
mov di,#0x0080
mov cx,#0x10
rep
movsb
|
把两个参数倒过来基本上就差不多了,AT&T汇编和X86汇编最大差别也就是这个了……
|
对了,还有个问题是#和$的问题,我来看一下好了
|
这个好像比较奇怪,是把0x41 0x41 0x41 0x41移动到DS:SI去的,[4*0x41]代表了"aaaa"字符串……
先把这个放一下
mov $0x0000,%ax
mov %ax,%ds
lds si,[4*0x41]//不太明白,先放放
mov #INITSEG,%ax
mov %ax,%es
mov $0x0080,%di
mov $0x10,%cx
rep//这个可能是ret吧?
movsb//这个不太清楚,是不是搞错了?
俺不是很懂汇编……
先把这个放一下
mov $0x0000,%ax
mov %ax,%ds
lds si,[4*0x41]//不太明白,先放放
mov #INITSEG,%ax
mov %ax,%es
mov $0x0080,%di
mov $0x10,%cx
rep//这个可能是ret吧?
movsb//这个不太清楚,是不是搞错了?
俺不是很懂汇编……
|
插了一下rep是重复,movsb是传递(并且只传递一个字节的)
|
info as 有AT&T syntax说明。