GDB 디버깅 NASM 어셈블러 코드 구문

다음과 같이 NASM 어셈블러 코드의 디버그 버전으로 준비입니다 :

section .data
section .text
global main
main:
  ;100001/100
 mov rdx,1
 mov rax,86A1H
 mov rbx,100
 div rbx
 mov rax,60
 syscall

일부 프로그램은 대신 '주'의 '_start'를 사용하지만, 내가 시험에 단어 _start를 사용하는 경우, 항상있을 것입니다 :

직접 실행 프로그램을 실행,하지만 난을 통해 단계로 원하는 상태가, 그래 '주'단어의 때문에 직접 사용을 등록 볼 때때로 Y를 입력 한 후.

그런 다음, 다음 명령을 입력 : NASM -f elf64 -o div.0 div.asm

                                 LD -o DIV div.o

그것은 우리가 단순히 무시 '_start'단어를 사용하지 않기 때문에 그것이 경고 메시지를 표시합니다 ~~~~~

그런 다음, GDB를 시작 GDB DIV 입력 입력 시작 프로그램을 실행하기 시작했다

(가) 위의 문제가없는 경우, 우리는 강화하기 시작했다.

니켈 명령이 프로그램을 통해 단계로 여기에 사용되는, 몇 가지주의를 n 입력 명령 블로그 또는 다음, 난이 입력이 내 개인 컴퓨터에서하면 전체 프로그램을 완료 할 것으로 나타났다.

정보 등록 후 상태 레지스터를 확인하는 명령을 입력합니다.

설명 여기에 사용될 수있는 '주'단어, GDB는 자동으로 임시 중단 점을위한 프로그램을 설정합니다.

다음으로, 우리는 프로그램을 통해 단계마다 니, 정보 레지스터 명령을 입력하고 상태 레지스터를 볼 수 있습니다.

게시 37 개 원래 기사 · 원 찬양 10 ·은 10000 +를 볼

추천

출처blog.csdn.net/OneLinee/article/details/103916620