디버그 명령에 대해 자세히 설명해주세요.
DEBUG용 공통 명령어
(1) 어셈블리 명령어 A
형식: A[시작 주소]
기능: 입력 명령어 소스 프로그램의 개체 코드를 모아서 지정된 주소 단위부터 저장합니다. 기본
시작 주소가 설정된 경우 현재 CS:100 주소부터 저장이 시작됩니다. A 명령은 라인별로 조립하는데 주로 작은 프로그램을 조립하거나 대상 프로그램을 수정하는 데 사용됩니다.
(2) 분해 명령 U
형식 1: U[시작 주소]
형식 2: U[시작 주소][끝 주소 | ]
기능: 형식 1 지정된 시작 주소에서 시작하여 32바이트 개체 코드를 어셈블리 명령 형식으로 변환합니다.
기본 시작 주소, 그런 다음 현재 주소 CS:IP에서 시작합니다.
형식 2는 지정된 메모리 단위 범위의 개체 코드를 어셈블리 명령으로 변환합니다.
(3) 레지스터 명령 표시 및 수정 R
형식: R[레지스터 이름]
기능: 레지스터 이름이 주어지면 레지스터 이름이 표시됩니다. 기본 레지스터 이름인
는 모든 레지스터의 내용과 현재 값을 다음 형식으로 표시합니다(수정할 수 없음).
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
DI=0000 DS=3000 ES=23A0 CS=138E IP=0000
NV UP DI PL NZ NA PO NC
138E:0000 MOV AX,1234
-R AX 명령을 입력하세요. AX 0014; AX의 내용을 표시합니다.
: ; 수정하려면 Enter를 누르세요.
플래그 레지스터를 수정하는 경우 다음을 입력하십시오: -RF
화면에는 OF, DF, IF, SF, ZF, AF, PF의 상태를 나타내는 다음 정보가 표시됩니다. 그리고 각각 CF.
NV UP DI PL NZ NA PO NC
수정하지 않고 Enter를 누르세요. 수정하려면 이 플래그의 반대 값을 하나 이상 개별적으로 입력한 다음 Enter 키를 눌러야 합니다.
R 명령은 16비트 레지스터만 표시하고 수정할 수 있습니다.
(4) 저장 장치 명령 표시 D
형식 1: D[시작 주소]
형식 2: D[시작 주소][끝 주소 |번호 of bytes]
기능: 형식 1은 시작 주소부터 시작하여 80H 단위의 내용을 16진수로 표시합니다. 한 줄에 16단위입니다.
*** 8줄, ASCII 코드 16단위 각 줄의 오른쪽에 표시되며, 표시할 수 없는 ASCII 코드는
“·”로 표시됩니다. 형식 2는 지정된 범위 내에서 저장 단위의 내용을 표시하며, 기타 표시 방법은 형식 1과 동일합니다.
기본 시작 주소나 주소 범위를 사용하는 경우 현재 주소부터 형식 1로 표시됩니다.
예: -D 200 ; DS:0200H부터 시작하여 128개 단위의 내용을 표시한다는 의미입니다.
-D 100 120 ; DS:0100-DS 단위의 내용을 표시한다는 의미입니다. 0120
p>
참고: DEBUG에서 주소 표현 방법은 다음 형식을 갖습니다.
세그먼트 레지스터 이름: 상대 주소(예: DS:100)
세그먼트 기본 값: 오프셋 주소(상대 주소), 예: 23A0:1500
(5) 저장 장치 수정 명령 E
형식 1: E [시작 주소 ] [목차]
형식 2: E[주소]
기능: 형식 1 내용의 내용에 따라 시작 주소부터 시작하여 여러 저장 단위의 내용을 수정합니다. 테이블, 즉 콘텐츠 사용
테이블에 지정된 콘텐츠가 저장 장치의 현재 콘텐츠를 대체합니다.
예: -E DS: 0100 'VAR' 12 34
DS:0100부터 시작하여 연속된 5바이트 단위의 내용이 순차적으로 수정됨을 나타냅니다.
>'V', 'A', 'R', 12H, 34H.
형식 2는 지정된 주소 단위의 현재 내용을 하나씩 수정하는 것입니다.
예: -E DS: 0010
156F: 0010 41.5F
그 중 156F:0010 단위의 원래 값은 41H, 5FH입니다. 입력 수정된 값입니다. 한 단위의 내용만 수정하는 경우
이때 Enter 키를 누르기만 하면 됩니다. 다음 단위의 내용을 계속 수정하려면 이때 스페이스바를 눌러야 합니다.
가 표시됩니다. 수정이 필요한 경우 새 내용을 입력하세요. 수정하지 않으려면 스페이스바를 눌러 건너뛰세요. 수정이 완료되면 Enter 키를 눌러 DEBUG "-" 프롬프트로 돌아갑니다. 수정 과정에서
스페이스 키를 "-" 키로 바꾸면 이전 단위의 내용을 수정할 수 있다는 뜻입니다.
(6) G 명령 실행
형식: G[=시작 주소][첫 번째 중단점 주소[두 번째 중단점 주소...]]
기능: CPU는 지정된 시작 주소에서 실행을 시작하고 첫 번째, 두 번째 및 기타 중단점에서 순서대로 인터럽트합니다. 기본
시작 주소를 사용하는 경우 현재 CS:IP에 표시된 주소부터 명령이 실행됩니다. 최대 10개의 중단점을 설정할 수 있습니다.
(7) 추적 명령 T
형식: T[시작 주소][양의 정수]
기능: 지정된 주소부터 '양의 정수' 실행 시작 명령어가 기본값인 경우 하나의 명령어를 실행한다는 의미입니다. 두 항목이 모두 기본값인 경우 현재 CS:IP 명령어 주소부터 시작하는 명령어를 실행한다는 의미입니다.
(8) 파일 명령 지정 N
형식: N<파일 이름 또는 확장자>
기능: 메모리로 전송하거나 메모리에서 쓰도록 지정 디스크의 파일 이름입니다. 이 명령은 L 명령과
W 명령 앞에 사용해야 합니다.
(9) 로드 명령 L
형식 1: L[시작 주소][디스크 기호][섹터 번호][섹터 수]
형식 2 : L [시작 주소]
기능: 형식 1은 디스크 기호에 따라 지정된 시작 주소의 저장 영역에 지정된 섹터의 내용을 로드합니다.
형식 2는 N 명령이 가리키는 파일을 지정된 시작 주소가 있는 저장 영역에 로드합니다. 시작 주소가 생략된 경우
CS:100에 로드하거나 The를 누릅니다. 원본 파일 위치 지정 규칙은 해당 위치에 로드하는 것입니다.
(10) 디스크 쓰기 명령 W
형식 1: W<시작 주소>[드라이브 문자]<시작 섹터><섹터 수>
형식 2: W [시작 주소]
기능: 형식 1은 지정된 주소에서 시작하는 콘텐츠 데이터를 디스크의 지정된 섹터에 씁니다.
형식 2는 시작 주소의 BX×10000H+CX 바이트를 N 명령으로 지정된 파일에 저장합니다.
형식 2의 W 명령 이전에는 N 명령을 사용하여 저장할 파일 이름을 지정하는 것 외에도 R 명령을 사용하여 쓸 바이트 수를 BX 및 CX로 전송해야 합니다. .
.
(11) 종료 명령 Q
형식: Q
기능: DEBUG를 종료하고 운영 체제로 돌아갑니다.
위의 소개는 DEBUG의 공통 명령어입니다. 기타 명령어에 대해서는 관련 서적을 참고하세요.