2014-06-16 4 views
0

안녕하십니까. 오늘 (조립을 시작한 지 얼마되지 않아) 조립이 새롭고 this tutorial에서 정확하게 말한대로이 문제에 부딪혔습니다. nasm - error : 줄 시작 부분에 레이블 또는 명령어가 있어야합니다.

bits 16 
org  0x7c00 
jmp  Main 

:In= si = string, ah = 0eh, al = char, Out= character screen 
Print: 
lodsb 
cmp  al, 0 
je  Done 
mov  ah, 0eh 
int  10h 
jmp  Print 

Done: 
ret 

Main 
mov  si, msg 
call Print 

cls 
hlt 

msg  db "Hello World",0 

times 510 - ($-$$)  db  0 

dw  0xAA55 

내가 NASM과 nasmpath의 사본을 가지고있는 ASM 파일 내 폴더에

, 나는 또한 Bochs와 바로 가기를 가지고 :이 텍스트가있는 ASM 파일을했다. 내가 뭘 하려는지 bin 파일로 변환하는 것입니다. 내가이 명령을 넣을 때

nasm -f bin boot.asm -o boot.bin 

을 나는 이것이 나쁜 튜토리얼의 경우 내가 궁금 아니면 내가 뭔가를 잘못 입력하고

boot.asm:5: error: label or instruction expected at the start of line 

이 오류를 얻을. 또한 "라벨 또는 지시"가 의미하는 바를 알고 싶습니다.

+1

5 호선 후 콜론을 넣어해야합니다. – nneonneo

+0

좋아, 고맙지 만 왜 투표가 늦었습니까? 나는 그 포스트에서 나는 새 것이라고 말했다. – pokeyOne

답변

-1

5 행에서 주석을 사용합니다. 1 행을 주석으로 표시하려면 세미콜론이 필요합니다. "레이블 또는 명령"은 각 행이 명령 (mov, add ...와 같은 opcode)이되어야하거나 레이블 (예 : 인쇄 :) 또는 레이블과 그 뒤에 명령이 있어야 함을 의미합니다.

0

또한 세미콜론이 아닌 콜론으로 시작해야합니다 메인 및 CLS

bits 16 
org  0x7c00 
jmp  Main 

;In= si = string, ah = 0eh, al = char, Out= character screen 
Print: 
lodsb 
cmp  al, 0 
je  Done 
mov  ah, 0eh 
int  10h 
jmp  Print 

Done: 
ret 

Main: 
mov  si, msg 
call Print 

cls: 
hlt 

msg  db "Hello World",0 

times 510 - ($-$$)  db  0 

dw  0xAA55