-2
에 나는 인텔 (NASM)에 & T AT에서 선 다음 번역 할 :AT & T 인텔 구문
이것은 내 & T-코드 :
.equ BUFFEREND, 1
.lcomm buffer, BUFFEREND
cmpb $97, buffer
그리고 여기 내 인텔 코드입니다 :
BUFFEREND EQU 1
buffer db BUFFEREND
cmp BYTE [buffer], 97
번역에 어떤 문제가 있습니까? 다음 코드에서 선이 있습니다. AT & T 코드가 작동합니다. 한 파일의 모든 소문자를 대문자로 변환하여 새 파일에 저장합니다. :
.global _start
.equ BUFFEREND, 1
.lcomm buffer, BUFFEREND
_start:
movl %esp, %ebp
movl $5, %eax
movl 8(%ebp), %ebx
movl $0, %ecx
int $0x80
pushl %eax
movl $5, %eax
movl 12(%ebp), %ebx
movl $03101, %ecx
movl $0666, %edx
int $128
pushl %eax
loop:
movl -4(%ebp), %ebx
movl $3, %eax
movl $buffer, %ecx
movl $BUFFEREND, %edx
int $128
pushl %eax
cmpb $97, buffer
jl next_byte
cmpb $122, buffer
jg next_byte
subb $32, buffer
next_byte:
movl %eax, %edx
movl $4, %eax
movl -8(%ebp), %ebx
movl $buffer, %ecx
int $0x80
popl %eax
cmpl $BUFFEREND, %eax
jne loopexit
jmp loop
loopexit:
movl $1, %eax
movl $0, %ebx
int $0x80
정확한 probleme 내 인텔 파일이 더 OUTPUTFILE
오, 죄송 합니다만, AT & T 문법에 대해'nasm'을 사용하고 있습니다. – Shibumi
두 번째 열어보기 매개 변수를 확인하십시오. 나는 그들이 8 진수이어야한다고 생각하니? Nasm을위한'mov ecx, 3031q'? –
고맙습니다. 프랭크 코 틀러. 문제 해결됨. – Shibumi