부트스트랩 구현 소스코드 에러.
[org 0]
[bits 16]
jmp 0x07C0:start
start:
mov ax, cs
mov ds, ax
mov ax, 0xB800
mov es, ax
mov di, 0
mov ax, word [msgBack]
mov cx, 0x7FF
paint:
mov word [es:di], ax
add di, 2
dec cx
jnz paint
mov edi, 0
mov byte [es:edi], 'A'
inc edi
mov byte [es:edi], 0x06
mov edi
mov byte [es:edi], 'B'
inc edi
mov byte [es:edi], 0x06
mov edi
mov byte [es:edi], 'C'
inc edi
mov byte [es:edi], 0x06
mov edi
mov byte [es:edi], '1'
inc edi
mov byte [es:edi], 0x06
mov edi
mov byte [es:edi], '2'
inc edi
mov byte [es:edi], 0x06
mov edi
mov byte [es:edi], '3'
inc edi
mov byte [es:edi], 0x06
jmp $
msgBack db '.', 0x67
times 510-($-$$) db 0
dw 0xAA55
제가 위와 같이 부트스트랩을 구현해보려고 책 참고하면서 소스코드를 작성해봤는데요
근데 cmd에서 다음과 같이 컴파일을 했는데 계속해서 다음과 같은 에러가 납니다.
> nasm -f bin -o 1.bin 1.asm
1. asm:25: error: invalid combination of opcode and operands
1. asm:29: error: invalid combination of opcode and operands
1. asm:33: error: invalid combination of opcode and operands
1. asm:37: error: invalid combination of opcode and operands
1. asm:41: error: invalid combination of opcode and operands
음. 머가 문제인가요 이거때문에 다음으로 진행을 할 수가없네요..
에러를 보면1. asm:25: error:
에러를 보면
1. asm:25: error: invalid combination of opcode and operands
1.asm 파일의 25 행에서 error 가 났는데 그 원인은 invalid combination of opcode and operands 라고 합니다.
이하 에러도 같은 내용이구요
25행을 보면
mov edi
인데요.
mov 는 http://en.wikipedia.org/wiki/MOV_%28x86_instruction%29 를 보면 'mov x, y' 와 같이 써야 합니다.
mov edi 에서 뒤에 하나가 빠졌죠( 혹은 앞에...? )
제가 부트스트랩도 어셈블리도 잘 몰라서 더는 모르겠습니다 ㅎㅎ;;
혹시 모르니 참고하실만 해보이는 곳 첨부합니다.
http://1228.tistory.com/entry/%EB%B6%80%ED%8A%B8%EB%A1%9C%EB%8D%94-%EB%A7%8C%EB%93%A4%EA%B8%B0-2
댓글 달기