ASM 커널에서 비디오 모드를 설정하고 싶습니다. 1920x1080 이상의 비디오 모드로 작업하고 있습니다 (또는 적어도 VESA의 일반적인 한도). 어쨌든 그렇게 할 수 있습니까? 그렇다면 샘플 코드를 제공하십시오. 저는 커널을 코딩하기 위해 NASM을 사용하고 있습니다.
와 연결 문제는 내가 NASM 컴파일 샘플 어셈블리 파일이 있습니다. ld 명령은 다음 오류와 함께 실패 ld -o syscall syscall.o
: 나는 LD로를 연결하려고 내가 ld -o syscall syscall.o -melf_i386
명령을 할 경우, ld: i386 architecture of input file `syscall.o' i
NASM 어셈블리 언어로 프로그래밍하고 싶습니다. 나는 NASM 2.07과 볼랜드 C++ 컴파일러 5.0 (bcc32)을 가지고있다. 내 OS는 Windows 7입니다. Windows 플랫폼에서 NASM을 사용하여 입출력을 수행하는 방법을 모르겠습니다. 도와 주실 수 있으신가요?
내가 소화 할 수없는 것이 있습니다. 나는 어떤 어셈블러를 배우고 있으며, 지금 나는 어드레싱과 관련된 장에있다. 역 참조를위한 괄호의 개념을 이해하지만 어떻게 든 사용법을 볼 때 나는 그 지점을 흡수 할 수 없다. 내 혼란이 시작된 곳 여기에 조금 더 정확하게하려면입니다 : mov 인 등이, [L1] 여기에서 확인 내가 예를 들어 케이스로 L1을 가정한다
MOV는 아마도 ASM을 배우는 동안 모두가 배운 첫 번째 명령 일 것입니다. 그냥 지금은 말한다 책 Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona가 발생했습니다 alt text http://i.imagehost.org/0897/mov.gif 을하지만 그것이
어셈블리에서 이미 내 OS의 일부를 수행했지만 지금은 GRUB을 사용하지 않고 자체 부트 로더를 빌드하려고합니다. 조립시 시험용 OS를 개발할 때 다음과 같이 부팅한다는 것을 기억합니다. org 0x7c00
bits 16
; OS Kernel Here
times 510 - ($-$$) db 0
dw 0xAA55
이 글은 이미 알고 있습니다.
nasm과 C++에 대한 연결에 관한 질문이 있습니다. 나는 extern "C" void __cdecl myTest(byte i1, byte i2, int stride, int *width); 로 litte 테스트 함수를 선언하고 난 다음과 같이 호출 :이 byte i1 = 1, i2 = 2;
int stride = 3, width = 4;
myTest