크리에이티브 커먼즈 라이센스

홈페이지HOME

PHP

JavaScript

HTML

CSS

드롭다운메뉴

제로보드4

도   움   말

백지 건강강좌/자가임상체험

물박사(자가면역질환...)^미러

전동명(천연물질사전)^미러

竹田 장승옥(블로그)^글목록

계산환산(계산기)^ 단위변환

관주성경 TTS 일반파일 TTS

바이블로 Bible_ro 다운로드

다운로드>폰에 복사
>파일선택...설치됩니다.

[도움말 보기] 바로가기

개선 요구, 충고는
아래 관리자 연락
전화/메일 부탁 드립니다.
최대한 빨리 처리하고
업데이트 올리겠습니다.


asm_81.


N,L,T,A 커맨드.


     23 이형문 buju8t 12/28 1110

     8 디버거를 알자... N,L,T,A 커맨드.



 이형문 (buju8t  )

디버거를 알자... N,L,T,A 커맨드. 12/28

18:58 127 line






디버거를 사용하여 프로그램을 수정하는 방법


화일을 로드할 때는 N 커맨드를 사용합니다.

N 커맨드에 의해 지정된 화일을 메모리 상에 로드 할 때는 L 커맨드를

사용합니다.

그럼 디버거를 다시 기동 시켜 봅시다.


C:ASM>DEBUG

-NSAMPLE.EXEX

-L


이렇게 하여 "SAMPLE.EXE"을  디버그 할수있게 되었읍니다.


T 커맨드는 지정된 번지로 부터 지정된 스텝수 만큼 실행(추적)하는 커맨드입니다.






예를 들면


-T  ----->현재의 번지 부터 1스텝이 실행되며

그때의 레지스터의 값과

 1행만큼의

역어셈블 결과가 표시 絳求.

-T2  -----> 현재의 번지 부터 2스텝이 추적된다.

-T0,2 --->0 번지 부터 2 스텝  추적됩니다.

-T2,2------>2 번지 부터 2 스텝  추적됩니다.


-r  

AX=0000  BX=0000  CX=0011  DX=0000  SP=0000  BP=0000

 SI=0000  DI=0000

DS=112C  ES=112C  SS=113C  CS=113C  IP=0000 NV

UP EI PL NZ NA PO NC

113C:0000 B221  MOV

DL,21

-t  


AX=0000  BX=0000  CX=0011  DX=0021  SP=0000  BP=0000

 SI=0000  DI=0000

DS=112C  ES=112C  SS=113C  CS=113C  IP=0002 NV

UP EI PL NZ NA PO NC

113C:0002 B402  MOV

AH,02

-t  


AX=0200  BX=0000  CX=0011  DX=0021  SP=0000  BP=0000

 SI=0000  DI=0000

DS=112C  ES=112C  SS=113C  CS=113C  IP=0004 NV

UP EI PL NZ NA PO NC

113C:0004 CD21  INT

21  


이와 같이 계속추적할 수있으나 서브루틴호출인 경우와 서브루틴 호출인

경우 인터럽트 루틴으로 분기하여 다시 메인루틴으로 돌아오려면 힘들기

때문에 건너 뛰는 것이 좋읍니다.






건너 뛸 필요가 있을 때는 G 커맨드를 사용합니다.

현재의 IP의 값이 0004 이고 여기에는 CD,21이라는 2바이트 명령이 있으므

로 다음 명령은 0004+2=0006 번지로 됩니다.

그래서 계속 다음을 입력하시면 됩니다.


-G6

!

AX=0221  BX=0000  CX=0011  DX=0021  SP=0000  BP=0000

 SI=0000  DI=0000

DS=4A60  ES=4A60  SS=4A70  CS=4A70  IP=0006 NV

UP EI PL NZ NA PO NC

4A70:0006 FEC2  INC

DL  


여기서 인터럽트 결과 화면에 문자 "!" 가 표시 되었읍니다. 계속해서


-T2


AX=0221  BX=0000  CX=0011  DX=0022  SP=0000  BP=0000

 SI=0000  DI=0000

DS=4A60  ES=4A60  SS=4A70  CS=4A70  IP=0008 NV

UP EI PL NZ NA PE NC

4A70:0008 80FA7F  CMP DL,7F



AX=0221  BX=0000  CX=0011  DX=0022  SP=0000  BP=0000

 SI=0000  DI=0000

DS=4A60  ES=4A60  SS=4A70  CS=4A70  IP=000B NV

UP EING NZ AC PE CY

4A70:000B 76F5  JBE

0002  ;여기서 JBE 는 조건분기 명령

-T  


AX=0221  BX=0000  CX=0011  DX=0022  SP=0000  BP=0000

 SI=0000  DI=0000

DS=4A60  ES=4A60  SS=4A70  CS=4A70  IP=0002 NV

UP EI NG NZ AC PE CY

4A70:0002 B402  MOV

AH,02  


IP 의 값을 보면 알수있듯이 000번지로 분기 하였습니다. 조건이 바르지

않다면 000B다음명령 000D 번지로 분기했을 겁니다.






다음의 결과를 보기 위해서는 한스텝 더 추적한후에 지정해야 합니다.

그렇지 않으면 현재의 레지스터의 값을 다시 보여 줍니다.


-T  


AX=0221  BX=0000  CX=0011  DX=0022  SP=0000  BP=0000

 SI=0000  DI=0000

DS=4A60  ES=4A60  SS=4A70  CS=4A70  IP=0008 NV

UP EI PL NZ NA PE NC

4A70:0008 80FA7F  CMP DL,7F


-G6

"

AX=0222  BX=0000  CX=0011  DX=0022  SP=0000  BP=0000

 SI=0000  DI=0000

DS=4A60  ES=4A60  SS=4A70  CS=4A70  IP=0006 NV

UP EI NG NZ AC PE CY

4A70:0006 FEC2  INC

DL  


프로그램이 끝날때 까지 실행시켜 봅시다.


-GF  

$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghi

tuvwxyz{}  

AX=4C7F  BX=0000  CX=0011  DX=0080  SP=0000  BP=0000

 SI=0000  DI=0000

DS=112C  ES=112C  SS=113C  CS=113C  IP=000F OV

UP EI PL NZ AC PO NC

113C:000F CD21  INT

21  


이 프로그램에서는 아스키 코드 7FH까지의 기호 표시를 한 것인데,

이것을 5FH까지로 변경하고 싶을 경우에는 다음과 같이 합니다.

-U8,8

113C:0008 80FA7F  CMP DL,7F


-A8

113C:0008 CMP DL,5F

113C:000B


그러면 바르게 변경되어 있는지 살표볼려면

-U0,F

를 입력하면 된다.






그럼 시랭해 보면 다음과 같읍니다.


-G=0,F  

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_


AX=4C 5F  BX=0000  CX=0011  DX=0060  SP=0000  BP=0000

 SI=0000  DI=0000

DS=112C  ES=112C  SS=113C  CS=113C  IP=000F NV

UP EI PL NZ AC PO NC

113C:000F CD21  INT

21  


메모리 내용을 직접 바꿔 써 너으려면 S 커맨드를 사용해야 됩니다.

그러나 이것은 다음 기회에 하도록 하죠!

이 예제는 바꿔쓴 명령의 바이트 수가 같아 다음 번지의 명령이 파괴되지

않았는데 바이트 수가 다른 명령으로 바꾸려면 주의해야 합니다.


-W  

EXE and HEX files cannot be written


수정한 화일을 원래의 디스크에 바꿔 써넣으려면 W 커맨드를 사용합니다.

그러나 확장자가 COM,EXE 화일일 경우에는 바꿔써 넣을 수가 없읍니다.

정 그화일을 수정하고 싶을 경우 처음부터 확장자를 바꿔서 디버거를

사용해 수정합니다.



ID:
PW:

     0 분
     0 분

자유게시판

건강백과 HOME

홈페이지 HOME

조   약     HOME

생활지혜 HOME

서식양식 HOME

법원 전산양식 검색

In Na zum

비공개 HOME

백과넷 포탈 : 건강/법률(메인)/홈피/서식/조약/생활지혜

◁ 2002.9.1.~2018.8.16. ▷

관리자 연락(저작권 의심 신고) : 김병희 010-6204-4973 k8z7@hanmail.net