section .data
map db 1
section .text
start:
cmp byte [map], 1
je exit
jmp start
exit:
ret
운이 좋지 않은 데이터가 있습니다. 제가 말하고자하는 것은 바이너리 DOS COM 형식으로 어셈블하는 것입니다. 시작하면 그냥 멈춰 버립니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?데이터가 전혀 없습니다. NASM
section .data
map db 1
section .text
start:
cmp byte [map], 1
je exit
jmp start
exit:
ret
운이 좋지 않은 데이터가 있습니다. 제가 말하고자하는 것은 바이너리 DOS COM 형식으로 어셈블하는 것입니다. 시작하면 그냥 멈춰 버립니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?데이터가 전혀 없습니다. NASM
DOS com 파일은 주소 0x100에로드 될 것으로 예상됩니다. 코드 시작 부분에 org 0x100
줄을 포함해야합니다.
절대 알지 못했습니다! 감사! –
@ Gip-Gip, PSP ("Program Segment Prefix")를 찾아서 이것이 왜 그런지 알아보십시오. 짧은 버전은 프로그램이 필요로하는 많은 정보가 들어있는 세그먼트의 첫 번째 0xff 바이트를 DOS가 채우는 것입니다. –
우선, 'ret'할 것이 없을 때'ret'를 발행합니다. –
@DanielKamilKozar, 메모리가 올바르게 작동하면 DOS는 스택의 끝에 프로그램의 끝에있는 ret를 사용하여 무방비 상태로 되돌릴 수 있도록 준비합니다. 그러나 필자는이 [Peter Norton의 IBM PC 프로그래머 가이드]를 위해 필자의 참고 자료를 가지고 있지 않습니다. –