내 OS의 외부 프로그램으로 플랫 이진 파일을 사용하고 있습니다. 컴파일 할 때 다음과 같이하면된다 :char 배열의 내용을 플랫 이진 파일에 포함하십시오.
그러나 이렇게하면 문자 배열의 내용이 파일에 저장되지 않는다. 이건 내 코드입니다 :
00008000 <_start>:
8000: 55 push ebp
8001: 89 e5 mov ebp,esp
8003: a1 70 90 00 00 mov eax,ds:0x9070
8008: bb 00 00 00 00 mov ebx,0x0
800d: cd 01 int 0x1
800f: a1 74 90 00 00 mov eax,ds:0x9074
8014: bb 00 00 00 00 mov ebx,0x0
8019: cd 01 int 0x1
801b: b8 00 00 00 00 mov eax,0x0
8020: 5d pop ebp
8021: c3 ret
당신의를 볼 수 있듯이 :
static volatile char string[4] = "Hi!\0";
static volatile char string2[15] = "Hello, World!\n\0";
int _start()
{
asm("mov eax, [string]");
asm("mov ebx, 0x00");
asm("int 0x01");
asm("mov eax, [string2]");
asm("mov ebx, 0x00");
asm("int 0x01");
return 0;
}
나는 (내가 엘프에 그것을 실행,하지만 난 그게이 같은 코드를 가지고 확인) objdump를 실행할 때 텍스트를 찾을 수 없습니다. 나는 그것이 다음과 같은 것을 할 것이기를 바랬다 :나는 그것이 nasm과 함께 할 것이다.
어셈블리에서 이것을 코딩하지 않고 출력 빈 파일의 문자를 포함하도록하려면 어떻게해야합니까?
미리 감사드립니다.
추가 좀 더 유용한 태그 –
@ GrijeshChauhan 고마워,하지만 이건 정말 임베디드 자격이 될까요? 이것은 일반 PC에서 실행됩니다. – farlepet
네,하지만 임베디드 용으로 주목받는 사람들을 추가했습니다. 나는 또한 그들이이 질문에 당신을 도울 수 있다고 생각합니다 :) –