Debug:A(æ±ç¼)ç´æ¥å° 8086/8087/8088 è®°å¿ç å并å°å
åã 该å½ä»¤ä»æ±ç¼è¯è¨è¯å¥å建å¯æ§è¡çæºå¨ç ãæææ°å¼é½æ¯åå
è¿å¶æ ¼å¼ï¼å¿
é¡»æä¸å°å个å符è¾å
¥è¿äºæ°å¼ãå¨å¼ç¨çæä½ä»£ç ï¼æä½ç ï¼åæå®åç¼è®°å¿ç ã
a [address] åæ° address æå®é®å
¥æ±ç¼è¯è¨æ令çä½ç½®ã对 address 使ç¨åå
è¿å¶å¼ï¼å¹¶é®å
¥ä¸ä»¥âhâå符ç»å°¾çæ¯ä¸ªå¼ãå¦æä¸æå®å°åï¼a å°å¨å®ä¸æ¬¡åæ¢å¤å¼å§æ±ç¼ã æå
³å°æ°æ®è¾å
¥å°æå®åèä¸çä¿¡æ¯ï¼è¯·åçDebug Eï¼é®å
¥ï¼ã æå
³åæ±ç¼åèçä¿¡æ¯ï¼è¯·åçDebug Uï¼åæ±ç¼ï¼ 说æ
使ç¨è®°å¿ç 段çæ¿ä»£è®°å¿ç 为 cs:ãds:ães: å ss:ãè¿ç¨è¿åçè®°å¿ç æ¯ retfãå符串å¤ççè®°å¿ç å¿
é¡»æ确声æå符串大å°ãä¾å¦ï¼ä½¿ç¨ movsw å¯ä»¥ç§»å¨ 16 ä½çå串ï¼ä½¿ç¨ movsb å¯ä»¥ç§»å¨ 8 ä½åè串ã æ±ç¼è·³è½¬åè°ç¨ æ±ç¼ç¨åºæ ¹æ®åèæ¿æ¢èªå¨å°çãè¿åè¿ç跳转åè°ç¨æ±ç¼å°ç®æ å°åãéè¿ä½¿ç¨ near æ far åç¼å¯ä»¥æ¿ä»£è¿æ ·ç跳转æè°ç¨ï¼å¦ä¸ä¾æ示ï¼
-a0100:0500 0100:0500 jmp 502 ;
a 2-byte short jump 0100:0502 jmp near 505 ;
a 3-byte near jump 0100:0505 jmp far 50a ;
a 5-byte far jump å¯ä»¥å° near åç¼ç¼©å为 neã
åºååååèå
åä½ç½® å½æ个æä½æ°å¯ä»¥å¼ç¨æ个åå
åä½ç½®æè
åèå
åä½ç½®æ¶ï¼å¿
é¡»ç¨åç¼ word ptr æè
åç¼ byte ptr æå®æ°æ®ç±»åãå¯æ¥åç缩ååå«æ¯ wo å byã
以ä¸èä¾æ¾ç¤ºä¸¤ç§æ ¼å¼ï¼
dec wo [si] neg byte ptr [128] æå®æä½æ° Debug 使ç¨å
æ¬å¨ä¸æ¬å· ([ ]) çæä½æ°å¼ç¨å
åå°åçä¹ æ¯ç¨æ³ãè¿æ¯å 为å¦ä¸æ¹é¢ Debug ä¸è½åºåç«å³æä½æ°åå
åå°åçæä½æ°ã
以ä¸èä¾æ¾ç¤ºä¸¤ç§æ ¼å¼ï¼ mov ax,21 ;
load AX with 21h mov ax,[21] ;
load AX with the ; contents of ; memory location 21h
使ç¨ä¼ªæ令 ä½¿ç¨ a å½ä»¤æä¾ä¸¤ä¸ªå¸¸ç¨ç伪æ令ï¼db æä½ç ï¼å°åèå¼ç´æ¥æ±ç¼å°å
åï¼dw æä½ç ï¼å°åå¼ç´æ¥æ±ç¼å°å
åã以ä¸æ¯ä¸¤ä¸ªä¼ªæ令çèä¾ï¼
db 1,2,3,4,"THIS IS AN EXAMPLE" db 'THIS IS A QUOTATION MARK:"' db "THIS IS A QUOTATION MARK:'" dw 1000,2000,3000,"BACH"
èä¾ a å½ä»¤æ¯æææå½¢å¼çé´æ¥æ³¨åå½ä»¤ï¼å¦ä¸ä¾æ示ï¼
add bx,34[bp+2].[si-1] pop [bp+di] push [si] ) è¿æ¯ææææä½ç åä¹è¯ï¼
å¦ä¸ä¾æç¤ºï¼ loopz 100 loope 100 ja 200 jnbe 200 å¯¹äº 8087 æä½ç ï¼å¿
é¡»æå® wait æ fwait åç¼ï¼
å¦ä¸ä¾æç¤ºï¼ fwait fadd st,st(3) ; this line assembles ; an fwait prefix Debug:Cï¼æ¯è¾ï¼æ¯è¾å
åç两个é¨åã
c range address åæ° range æå®è¦æ¯è¾çå
å第ä¸ä¸ªåºåçèµ·å§åç»æå°åï¼æèµ·å§å°ååé¿åº¦ã address æå®è¦æ¯è¾ç第äºä¸ªå
ååºåçèµ·å§å°åãæå
³ææ address å¼çä¿¡æ¯ï¼è¯·åçâDebug 说æâã
说æ å¦æ range å address å
ååºåç¸åï¼Debug å°ä¸æ¾ç¤ºä»»ä½å
容èç´æ¥è¿åå° Debug æ示符ãå¦ææå·®å¼ï¼Debug å°æå¦ä¸æ ¼å¼æ¾ç¤ºï¼ address1 byte1 byte2 addess2 èä¾ ä»¥ä¸å½ä»¤å
·æç¸åææï¼ c100,10f 300 c100l10 300 æ¯ä¸ªå½ä»¤é½å¯¹ 100h å° 10Fh çå
åæ°æ®åä¸ 300h å° 30Fh çå
åæ°æ®åè¿è¡æ¯è¾ã
Debug ååºåé¢çå½ä»¤å¹¶æ¾ç¤ºå¦ä¸ä¿¡æ¯ï¼åå® DS = 197Fï¼ï¼ 197F:0100 4D E4 197F:0300 197F:0101 67 99 197F:0301 197F:0102 A3 27 197F:0302 197F:0103 35 F3 197F:0303 197F:0104 97 BD 197F:0304 197F:0105 04 35 197F:0305 197F:0107 76 71 197F:0307 197F:0108 E6 11 197F:0308 197F:0109 19 2C 197F:0309 197F:010A 80 0A 197F:030A 197F:010B 36 7F 197F:030B 197F:010C BE 22 197F:030C 197F:010D 83 93 197F:030D 197F:010E 49 77 197F:030E 197F:010F 4F 8A 197F:030F 注æå表ä¸ç¼ºå°å°å 197F:0106 å 197F:0306ãè¿è¡¨æé£äºå°åä¸çå¼æ¯ç¸åçã
Debug:Dï¼è½¬å¨ï¼æ¾ç¤ºä¸å®èå´å
åå°åçå
容ã d [range] åæ° range æå®è¦æ¾ç¤ºå
¶å
容çå
ååºåçèµ·å§åç»æå°åï¼æèµ·å§å°ååé¿åº¦ãå¦æä¸æå® rangeï¼Debug ç¨åºå°ä»ä»¥å d å½ä»¤ä¸ææå®çå°åèå´çæ«å°¾å¼å§æ¾ç¤º 128 个åèçå
容ã æå
³æ¾ç¤ºå¯åå¨å
容çä¿¡æ¯ï¼è¯·åçDebug Rï¼å¯åå¨ï¼ã
说æ å½ä½¿ç¨ d å½ä»¤æ¶ï¼Debug 以两个é¨åæ¾ç¤ºå
åå
容ï¼åå
è¿å¶é¨åï¼æ¯ä¸ªåèçå¼é½ç¨åå
è¿å¶æ ¼å¼è¡¨ç¤ºï¼å ASCII ç é¨åï¼æ¯ä¸ªåèçå¼é½ç¨ ASCII ç å符表示)ãæ¯ä¸ªéæå°å符å¨æ¾ç¤ºç ASCII é¨åç±å¥å· (.) 表示ãæ¯ä¸ªæ¾ç¤ºè¡æ¾ç¤º 16 åèçå
容ï¼ç¬¬ 8 åèå第 9 åèä¹é´æä¸ä¸ªè¿å符ãæ¯ä¸ªæ¾ç¤ºè¡ä» 16 åèçè¾¹çä¸å¼å§ã
èä¾ åå®é®å
¥ä»¥ä¸å½ä»¤ï¼ dcs:100 10f Debug æ以ä¸æ ¼å¼æ¾ç¤ºèå´ä¸çå
å®¹ï¼ 04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 00 00 TOM.SAWYER...... å¦æå¨æ²¡æåæ°çæ
åµä¸é®å
¥ d å½ä»¤ï¼Debug æ以åèä¾ä¸ææè¿°çå
容æ¥ç¼ææ¾ç¤ºæ ¼å¼ãæ¾ç¤ºçæ¯è¡ä»¥æ¯åä¸è¡çå°å大 16 个åèï¼å¦ææ¯æ¾ç¤º 40 åçå±å¹ï¼å为 8 个åèï¼çå°åå¼å¤´ã 对äºåé¢é®å
¥çæ¯ä¸ªä¸å¸¦åæ°ç d å½ä»¤ï¼Debug å°ç´§æ¥å¨æåæ¾ç¤ºçå½ä»¤åç«å³æ¾ç¤ºåèå
容ã
å¦æé®å
¥ä»¥ä¸å½ä»¤ï¼Debug å°ä» CS:100 å¼å§æ¾ç¤º 20h 个åèçå
容ï¼
dcs:100 l 20
å¦æé®å
¥ä»¥ä¸å½ä»¤ï¼Debug å°æ¾ç¤ºèå´ä» CS 段ç 100h å° 115h ä¸ææåèçå
å®¹ï¼ dcs:100 115 Debug:Eï¼é®å
¥ï¼ å°æ°æ®è¾å
¥å°å
åä¸æå®çå°åã å¯ä»¥æåå
è¿å¶æ ASCII æ ¼å¼é®å
¥æ°æ®ã以ååå¨å¨æå®ä½ç½®çä»»ä½æ°æ®å
¨é¨ä¸¢å¤±ã
e address [list] åæ° address æå®è¾å
¥æ°æ®ç第ä¸ä¸ªå
åä½ç½®ã list æå®è¦è¾å
¥å°å
åçè¿ç»åèä¸çæ°æ®ã æå
³éæè®°å¿ç çä¿¡æ¯ï¼è¯·åçDebug Aï¼æ±ç¼ï¼ã æå
³æ¾ç¤ºå
åé¨åå
容çä¿¡æ¯ï¼è¯·åçDebug D ï¼è½¬å¨ï¼ã
说æ ä½¿ç¨ address åæ° å¦æå¨æ²¡ææå®å¯éç list åæ°çå¼æ
åµä¸æå® address çå¼ï¼Debug å°æ¾ç¤ºå°ååå
容ï¼å¨ä¸ä¸è¡éå¤å°åï¼å¹¶çå¾
æ¨çè¾å
¥ãæ¤æ¶ï¼æ¨å¯ä»¥æ§è¡ä¸åæä½ä¹ä¸ï¼ æ¿æ¢åèå¼ã为æ¤ï¼è¯·å¨å½åå¼åé®å
¥æ°å¼ãå¦ææ¨é®å
¥çå¼ä¸æ¯ææçåå
è¿å¶å¼ï¼æ该å¼å
å«ä¸¤ä¸ªä»¥ä¸çæ°åï¼å Debug ä¸ä¼åæ¾æ ææé¢å¤çå符ã è¿å
¥ä¸ä¸ä¸ªåèã为æ¤ï¼è¯·æ SPACEBARï¼ç©ºæ ¼é®ï¼ã
è¦æ´æ¹è¯¥åèä¸çå¼ï¼è¯·å¨å½åå¼åé®å
¥æ°å¼ãå¦ææ SPACEBARï¼ç©ºæ ¼é®ï¼æ¶ï¼ç§»å¨è¶
è¿äº 8 ä½çéï¼Debug ç¨åºå°æ¾ç¤ºæ°çä¸è¡å¹¶å¨è¡é¦æ¾ç¤ºæ°å°åã è¿åå°åä¸ä¸ªåèã为æ¤ï¼è¯·æ HYPHEN é® (-)ãå¯ä»¥åå¤æ HYPHEN é® (-) åå移å¨è¶
è¿å¤ä¸ªåèãå¨æ HYPHEN æ¶ï¼Debug å¼å§æ°è¡å¹¶æ¾ç¤ºå½åå°åååèå¼ã åæ¢æ§è¡ e å½ä»¤ã为æ¤ï¼è¯·æ ENTER é®ãå¨ä»»ä½åèä½ç½®é½å¯ä»¥æ ENTERã
ä½¿ç¨ list åæ° å¦ææå® list åæ°çå¼ï¼éåç e å½ä»¤å°ä½¿ç¨å表ä¸çå¼æ¿æ¢ç°æçåèå¼ãå¦æåçé误ï¼å°ä¸æ´æ¹ä»»ä½åèå¼ã List å¼å¯ä»¥æ¯åå
è¿å¶åèæå符串ã使ç¨ç©ºæ ¼ãéå·æå¶è¡¨ç¬¦æ¥åéå¼ãå¿
é¡»å°å符串å
æ¬å¨åæåå¼å·ä¸ã
èä¾ åå®é®å
¥ä»¥ä¸å½ä»¤ï¼ ecs:100 Debug æä¸é¢çæ ¼å¼æ¾ç¤ºç¬¬ä¸ä¸ªåèçå
å®¹ï¼ 04BA:0100 EB. è¦å°è¯¥å¼æ´æ¹ä¸º 41ï¼è¯·å¨æå
¥ç¹é®å
¥ 41ï¼å¦ä¸æç¤ºï¼ 04BA:0100 EB.41_ å¯ä»¥ç¨ä¸ä¸ª e å½ä»¤é®å
¥è¿ç»çåèå¼ãå¨é®å
¥æ°å¼åæ SPACEBARï¼ç©ºæ ¼é®ï¼ï¼èä¸æ¯æ ENTER é®ãDebug æ¾ç¤ºä¸ä¸ä¸ªå¼ãå¨æ¤èä¾ä¸ï¼å¦ææä¸æ¬¡ SPACEBARï¼ç©ºæ ¼é®ï¼ï¼Debug å°æ¾ç¤ºä¸é¢çå¼ï¼ 04BA:0100 EB.41 10. 00. BC._ è¦å°åå
è¿å¶å¼ BC æ´æ¹ä¸º 42ï¼è¯·å¨æå
¥ç¹é®å
¥ 42ï¼å¦ä¸æç¤ºï¼ 04BA:0100 EB.41 10. 00. BC.42_ åå®å³å®å¼ 10 åºè¯¥æ¯ 6Fãè¦çº æ£è¯¥å¼ï¼è¯·æ HYPHEN é®ä¸¤æ¬¡ä»¥è¿åå°å°å 0101ï¼å¼ 10ï¼ãDebug æ¾ç¤ºä»¥ä¸å
å®¹ï¼ 04BA:0100 EB.41 10. 00. BC.42- 04BA:0102 00.- 04BA:0101 10._ å¨æå
¥ç¹é®å
¥ 6f æ´æ¹å¼ï¼å¦ä¸æç¤ºï¼ 04BA:0101 10.6f_ æ ENTER åæ¢ e å½ä»¤å¹¶è¿åå° Debug æ示符ä¸ã
以ä¸æ¯å符串项çèä¾ï¼ eds:100 "This is the text example" 该å符串å°ä» DS:100 å¼å§å¡«å
24 个åè Debug:Fï¼å¡«å
ï¼ä½¿ç¨æå®çå¼å¡«å
æå®å
ååºåä¸çå°åã å¯ä»¥æå®åå
è¿å¶æ ASCII æ ¼å¼è¡¨ç¤ºçæ°æ®ãä»»ä½ä»¥ååå¨å¨æå®ä½ç½®çæ°æ®å°ä¼ä¸¢å¤±ã
f range list åæ° range æå®è¦å¡«å
å
ååºåçèµ·å§åç»æå°åï¼æèµ·å§å°ååé¿åº¦ãå
³äºææç range å¼çä¿¡æ¯ï¼è¯·åçâDebug 说æâã list æå®è¦è¾å
¥çæ°æ®ãList å¯ä»¥ç±åå
è¿å¶æ°æå¼å·å
æ¬èµ·æ¥çå符串ç»æã
说æ ä½¿ç¨ range åæ° å¦æ range å
å«çåèæ°æ¯ list ä¸çæ°å¼å¤§ï¼Debug å°å¨ list ä¸åå¤ææ´¾å¼ï¼ç´å° range ä¸çææåèå
¨é¨å¡«å
ã å¦æå¨ range ä¸çä»»ä½å
åæåæä¸åå¨ï¼Debug å°æ¾ç¤ºé误æ¶æ¯å¹¶åæ¢ f å½ä»¤ã
ä½¿ç¨ list åæ° å¦æ list å
å«çæ°å¼å¤äº range ä¸çåèæ°ï¼Debug å°å¿½ç¥ list ä¸é¢å¤çå¼ã
èä¾ åå®é®å
¥ä»¥ä¸å½ä»¤ï¼ f04ba:100l100 42 45 52 54 41 ä½ä¸ºååºï¼Debug 使ç¨æå®çå¼å¡«å
ä» 04BA:100 å° 04BA:1FF çå
åä½ç½®ãDebug éå¤è¿äºä¸ªå¼ç´å° 100h 个åèå
¨é¨å¡«æ»¡ä¸ºæ¢ã
Debug:Gï¼è½¬åï¼è¿è¡å½åå¨å
åä¸çç¨åºã g [=address] [breakpoints] åæ° =address æå®å½åå¨å
åä¸è¦å¼å§æ§è¡çç¨åºå°åãå¦æä¸æå® addressï¼Windows 2000 å°ä» CS:IP å¯åå¨ä¸çå½åå°åå¼å§æ§è¡ç¨åºã breakpoints æå®å¯ä»¥è®¾ç½®ä¸º g å½ä»¤çé¨åç 1 å° 10 个临æ¶æç¹ã æå
³æ§è¡å¾ªç¯ãéå¤çå符串æ令ã软件ä¸ææåç¨åºçä¿¡æ¯ï¼è¯·åçDebug Pï¼æ§è¡ï¼ã æå
³æ§è¡æ令çä¿¡æ¯ï¼è¯·åçDebug Tï¼è·è¸ªï¼
Debug:Hï¼åå
è¿å¶ï¼å¯¹æå®ç两个åæ°æ§è¡åå
è¿å¶è¿ç®ã h value1 value2 åæ° value1 ä»£è¡¨ä» 0 å° FFFFh èå´å
çä»»ä½åå
è¿å¶æ°åã value2 ä»£è¡¨ä» 0 å° FFFFh èå´å
第äºä¸ªåå
è¿å¶æ°åã 说æ Debug é¦å
å°æå®ç两个åæ°ç¸å ï¼ç¶åä»ç¬¬ä¸ä¸ªåæ°ä¸åå»ç¬¬äºä¸ªåæ°ãè¿äºè®¡ç®çç»ææ¾ç¤ºå¨ä¸è¡ä¸ï¼å
计ç®åï¼ç¶å计ç®å·®ã
èä¾ åå®é®å
¥ä»¥ä¸å½ä»¤ï¼ h19f 10a Debug æ§è¡è¿ç®å¹¶æ¾ç¤ºä»¥ä¸ç»æã 02A9 0095 Debug:Iï¼è¾å
¥ï¼ä»æå®ç端å£è¯»å并æ¾ç¤ºä¸ä¸ªåèå¼ã i port åæ° port æå°åæå®è¾å
¥ç«¯å£ãå°åå¯ä»¥æ¯ 16 ä½çå¼ã æå
³å°åèå¼åéå°è¾åºç«¯å£çä¿¡æ¯ï¼è¯·åçDebug Oï¼è¾åºï¼ã
èä¾ åå®é®å
¥ä»¥ä¸å½ä»¤ï¼ i2f8 åæ¶åå®ç«¯å£çåèå¼æ¯ 42hãDebug 读å该åèï¼å¹¶å°å
¶å¼æ¾ç¤ºå¦ä¸ï¼ 42 Debug:Lï¼å è½½ï¼å°æ个æ件æç¹å®ç£çæåºçå
容å è½½å°å
åã
è¦ä»ç£çæ件å è½½ BX:CX å¯åå¨ä¸æå®çåèæ°å
容ï¼è¯·ä½¿ç¨ä»¥ä¸è¯æ³ï¼ l [address] è¦ç¥è¿ Windows 2000 æ件系ç»å¹¶ç´æ¥å è½½ç¹å®çæåºï¼è¯·ä½¿ç¨ä»¥ä¸è¯æ³ï¼ l address drive start number åæ° address æå®è¦å¨å
¶ä¸å è½½æ件ææåºå
容çå
åä½ç½®ãå¦æä¸æå® addressï¼Debug å°ä½¿ç¨ CS å¯åå¨ä¸çå½åå°åã drive æå®å
å«è¯»åæå®æåºçç£çç驱å¨å¨ã该å¼æ¯æ°å¼åï¼0 = A, 1 = B, 2 = C çã start æå®è¦å è½½å
¶å
容ç第ä¸ä¸ªæåºçåå
è¿å¶æ°ã number æå®è¦å è½½å
¶å
容çè¿ç»æåºçåå
è¿å¶æ°ãåªæè¦å è½½ç¹å®æåºçå
容èä¸æ¯å è½½ debug å½ä»¤è¡ææè¿ç Debug nï¼å称ï¼å½ä»¤ä¸æå®çæ件æ¶ï¼æè½ä½¿ç¨ driveãstart å number åæ°ã æå
³æå®ç¨äº l å½ä»¤çæ件çä¿¡æ¯ï¼è¯·åçDebug nï¼å称ï¼ã æå
³åå
¥è°è¯å°ç£ççæ件çä¿¡æ¯ï¼è¯·åçDebug wï¼åå
¥ï¼ã
注æ 使ç¨ä¸å¸¦åæ°ç l å½ä»¤ å½ä½¿ç¨ä¸å¸¦åæ°ç l å½ä»¤æ¶ï¼å¨ debug å½ä»¤è¡ä¸æå®çæ件å°å è½½å°å
åä¸ï¼ä»å°å CS:100 å¼å§ãDebug åæ¶å° BX å CX å¯åå¨è®¾ç½®ä¸ºå è½½çåèæ°ãå¦æä¸å¨ debug å½ä»¤è¡æå®æ件ï¼æè£
å
¥çæ件å°æ¯æè¿ä½¿ç¨ n å½ä»¤ç»å¸¸æå®çæ件ã
使ç¨å
·æ address åæ°ç 1 å½ä»¤ å¦æ使ç¨å¸¦ address åæ°ç l å½ä»¤ï¼Debug å°ä»å
åä½ç½® address å¼å§å è½½æ件ææå®æåºçå
容ã 使ç¨å¸¦å
¨é¨åæ°ç l å½ä»¤ å¦æ使ç¨å¸¦ææåæ°ç l å½ä»¤ï¼Debug å°å è½½æå®ç£çæåºçå
容èä¸æ¯å è½½æ件ã å è½½ç¹å®æåºçå
容 æå®èå´å
çæ¯ä¸ªæåºåä» drive 读åãDebug ä» start å¼å§å è½½ï¼ç´å°å¨ number ä¸æå®çæåºæ°ä¸çå
容å
¨é¨è¢«å è½½ã å è½½ .exe æ件 Debug å¿½ç¥ .exe æ件çå°å address åæ°ãå¦ææå® .exe æ件ï¼Debug å°æ件éæ°å®ä½å° .exe æ件çæ é¢ä¸æå®çå è½½å°åãå¨ .exe æ件被å è½½å°å
ååï¼æ é¢èªèº«ä» .exe æ件è±ç¦»ï¼å æ¤ç£çä¸ç .exe æ件大å°ä¸å
åä¸çä¸åãå¦æè¦æ£æ¥æ´ä¸ª .exe æ件ï¼è¯·ä½¿ç¨ä¸åçæ©å±åéå½åæ件ã æå¼åå
è¿å¶æ件 Debug å°å
·æ .hex æ©å±åçæ件认为åå
è¿å¶æ ¼å¼æ件ãé®å
¥ä¸å¸¦åæ°ç l å½ä»¤ï¼å¯ä»¥å è½½ä»åå
è¿å¶æ件ä¸æå®çå°åå¤å¼å§çåå
è¿å¶æ件ãå¦æé®å
¥ç l å½ä»¤å
å« address åæ°ï¼Debug å°ææå®çå°åå å°å¨åå
è¿å¶æ件ä¸æ¾å°çå°åä¸ï¼ä»¥ç¡®å®èµ·å§å°åã
èä¾ åå®å¯å¨ Debug 并é®å
¥ä»¥ä¸å½ä»¤ï¼ nfile.com ç°å¨å¯ä»¥é®å
¥ l å½ä»¤ä»¥å è½½ File.comãDebug å°å è½½æ件并æ¾ç¤º Debug æ示符ã åå®éè¦ä»é©±å¨å¨ C å°èµ·å§é»è¾æåºä¸º 15 (0Fh) ç 109 (6Dh) 个æåºçå
容å è½½å°èµ·å§å°å为 04BA:0100 çå
åä¸ã为æ¤ï¼è¯·é®å
¥ä»¥ä¸å½ä»¤ï¼ l04ba:100 2 0f 6d Debug:Mï¼ç§»å¨ï¼å°ä¸ä¸ªå
ååä¸çå
容å¤å¶å°å¦ä¸ä¸ªå
ååä¸ã m range address åæ° range æå®è¦å¤å¶å
容çå
ååºåçèµ·å§åç»æå°åï¼æèµ·å§å°ååé¿åº¦ã address æå®è¦å° range å
容å¤å¶å°è¯¥ä½ç½®çèµ·å§å°åã 说æ å¤å¶æä½å¯¹ç°ææ°æ®çå½±å å¦ææ°æ°æ®æ²¡æåå
¥æ£å¨è¢«å¤å¶çæ°æ®åä¸çå°åï¼åæºæ°æ®å°ä¿æä¸åãä½æ¯ï¼å¦æç®æ åå·²ç»å
å«æ°æ®(就象å®å¨è¦çå¯æ¬æä½ä¸ä¸æ ·)ï¼åå°æ¹å该æ°æ®ãï¼è¦çå¤å¶æä½æ¯æé£äºç®æ æ°æ®åé¨åå
容è¦çåæ°æ®åé¨åå
容çæä½ãï¼ æ§è¡è¦çå¤å¶æä½ m å½ä»¤æ§è¡ç®æ å°åçè¦çå¤å¶æä½ï¼èä¸ä¸¢å¤±æ°æ®ãå°æ¹åçå°åå
容é¦å
å¤å¶ãå æ¤ï¼å¦æå°è¾é«ä½å°åçæ°æ®å¤å¶å°è¾ä½ä½å°åï¼åå¤å¶æä½ä»ååçæä½ä½å°åå¼å§å¹¶åæé«ä½å°åè¿è¡ãåä¹ï¼å¦æè¦å°æ°æ®ä»ä½å°åå¤å¶å°é«å°åï¼å¤å¶æä½ä»ååçæé«å°åå¼å§ï¼åæä½å°åè¿è¡ã
èä¾ åå®é®å
¥ä»¥ä¸å½ä»¤ï¼ mcs:100 110 cs:500 Debug é¦å
å° CS:110 å°åä¸çå
容å¤å¶å°å°å CS:510 ä¸ï¼ç¶åå° CS:10F å°åä¸çå
容å¤å¶å° CS:50F ä¸ï¼å¦æ¤æä½ç´è³å° CS:100 å°åä¸çå
容å¤å¶å°å°å CS:500 ä¸ãè¦æ¥çç»æï¼è¯·ä½¿ç¨ Debug dï¼è½¬å¨ï¼å½ä»¤ï¼å¹¶ä½¿ç¨ m å½ä»¤æå®ç®æ å°å Debug:Nï¼å称ï¼æå® Debug lï¼å è½½ï¼æ wï¼åå
¥ï¼å½ä»¤çå¯æ§è¡æ件çå称ï¼æè
æå®æ£å¨è°è¯çå¯æ§è¡æ件çåæ°ã n [drive:][path] filename è¦æå®æµè¯çå¯æ§è¡æ件çåæ°ï¼è¯·ä½¿ç¨ä»¥ä¸è¯æ³ï¼ n file-parameters åæ° å¦æå¨æ²¡æåæ°çæ
åµä¸ä½¿ç¨ï¼å n å½ä»¤æ¸
é¤å½åè§èã [drive:][path] filename æå®è¦æµè¯çå¯æ§è¡æ件çä½ç½®åå称ã file-parameters 为æ£å¨æµè¯çå¯æ§è¡æ件æå®åæ°åå¼å
³ã æå
³å°æ件ææå®ç£çæåºçå
容å è½½å°å
åä¸çä¿¡æ¯ï¼è¯·åçDebug Lï¼å è½½ï¼ã æå
³åå
¥è°è¯å°ç£ççæ件çä¿¡æ¯ï¼è¯·åçDebug Wï¼åå
¥ï¼ã
说æ n å½ä»¤ç两个ç¨é å¯ä»¥æ两ç§æ¹å¼ä½¿ç¨ n å½ä»¤ã
é¦å
ï¼æ¨å¯ä»¥ä½¿ç¨å®ä»¥æå®åé¢ç lï¼å è½½ï¼æ wï¼åå
¥ï¼å½ä»¤æ使ç¨çæ件ãå¦æå¨æ²¡æå½åæè°è¯æ件çæ
åµä¸å¯å¨ Debugï¼å¿
é¡»å¨ä½¿ç¨ l å½ä»¤å è½½æ件ä¹å使ç¨å½ä»¤ nfilenameãå¨ CS:5C 为æ件æ§å¶å (FCB) æ£ç¡®ç¼ææ件åçæ ¼å¼ã
å
¶æ¬¡ï¼å¯ä»¥ä½¿ç¨ n å½ä»¤æå®è¢«è°è¯æ件çå½ä»¤è¡åæ°åå¼å
³ã å
ååºå 以ä¸å个å
ååºåé½ä¼åå° n å½ä»¤çå½±åï¼ å
åä½ç½® å
容 CS:5C æ件 1 çæ件æ§å¶æ°æ®å (FCB) CS:6C æ件 2 çæ件æ§å¶æ°æ®å (FCB) CS:80 n å½ä»¤è¡çé¿åº¦ï¼ä»¥åç¬¦è¡¨ç¤ºï¼ CS:81 n å½ä»¤è¡å符çå¼å¤´ 为 n å½ä»¤æå®ç第ä¸ä¸ªæ件å被æ¾å¨ CS:5C ç FCB ä¸ãå¦ææå®ç¬¬äºä¸ªæ件åï¼æ¤å称å°æ¾ç½®å° CS:6C ç FCB ä¸ãn å½ä»¤è¡ä¸é®å
¥çå符æ°ï¼é¤ç¬¬ä¸ä¸ªå符ä¹å¤ï¼nï¼åå¨å¨ä½ç½® CS:80ãn å½ä»¤è¡ä¸çå®é
å符ï¼å次ï¼é¤äºåæ¯ n ä¹å¤ï¼åå¨å¨ä»¥ CS:81 å¼å¤´çä½ç½®ã注æè¿äºå符å¯ä»¥æ¯å¨ Windows 2000 å½ä»¤æ示符ä¸é®å
¥çå½ä»¤ä¸ææçä»»ä½å¼å
³ååé符ã
èä¾ åå®å·²ç»å¯å¨ Debugï¼å¹¶å è½½äºæ£å¨è°è¯çç¨åº Prog.comãæ¥çæ¨å³å®ä¸º Prog.com æå®ä¸¤ä¸ªåæ°å¹¶è¿è¡æ¤ç¨åºã以ä¸æ¯æ¤èä¾çå½ä»¤åºåï¼ debug prog.com nparam1 param2 g å¨è¿ç§æ
åµä¸ï¼Debug gï¼è½¬åï¼å½ä»¤ä¼è¿è¡è¯¥ç¨åºï¼å°±å¥½åæ¨å·²å¨ Windows 2000 å½ä»¤æ示符åé®å
¥äºå¦ä¸å½ä»¤ï¼ prog param1 param2 æ以ï¼æµè¯åè°è¯åæ Prog.com é常çè¿è¡æ¶é´ç¯å¢ã å¨ä¸é¢çå½ä»¤åºåä¸ï¼ç¬¬ä¸ä¸ª n å½ä»¤å° File1.exe æå®ä¸ºåæ¥ç lï¼å è½½ï¼å½ä»¤çæ件ï¼è¯¥å½ä»¤å° File1.exe å è½½å°å
åã第äºä¸ª n å½ä»¤æå® File1.exe å°ä½¿ç¨çåæ°ãæåï¼g å½ä»¤å°è¿è¡ File1.exe æ件ï¼å°±å¥½åæ¨å¨ Windows 2000 å½ä»¤è¡ä¸é®å
¥äº File1 File2.dat File2.dat ä¸æ ·ã nfile1.exe l nfile2.dat file3.dat g 注æ ä¸è¦å¨ n å½ä»¤ç第äºç§å½¢å¼åä½¿ç¨ l å½ä»¤ãè¿è¦æ³¨æï¼å¦æç°å¨ä½¿ç¨ wï¼åå
¥ï¼å½ä»¤ï¼Windows 2000 å°ä½¿ç¨å称 File2.dat ä¿åæ£å¨è°è¯çæ件 File1.exeã为é¿å
åºç°æ¤ç»æï¼åºè¯¥æ»æ¯å¨ l æ w å½ä»¤ä¹åç«å³ä½¿ç¨ n å½ä»¤ç第ä¸ç§å½¢å¼ã Debug:Oï¼è¾åºï¼å°åèå¼åéå°è¾åºç«¯å£ã o port byte-value åæ° port éè¿å°åæå®è¾åºç«¯å£ã端å£å°åå¯ä»¥æ¯ 16 ä½å¼ã byte-value æå®è¦æå port çåèå¼ã æå
³ä»è¾å
¥ç«¯å£è¯»ååèå¼çä¿¡æ¯ï¼è¯·åçDebug Iï¼è¾å
¥ï¼ã
èä¾ è¦å°åèå¼ 4Fh åéå°å°å为 2F8h çè¾åºç«¯å£ï¼è¯·é®å
¥ä»¥ä¸å½ä»¤ï¼ o2f8 4f Debug:Pï¼æ§è¡ï¼æ§è¡å¾ªç¯ãéå¤çå符串æ令ã软件ä¸ææåä¾ç¨ï¼æéè¿ä»»ä½å
¶ä»æ令è·è¸ªã p [= address] [number] åæ° =address æå®ç¬¬ä¸ä¸ªè¦æ§è¡æ令çä½ç½®ãå¦æä¸æå®å°åï¼åé»è®¤å°åæ¯å¨ CS:IP å¯åå¨ä¸æå®çå½åå°åã number æå®å¨å°æ§å¶è¿åç» Debug ä¹åè¦æ§è¡çæ令æ°ãé»è®¤å¼ä¸º 1ã æå
³è¿è¡å½åå¨å
åä¸ç¨åºçä¿¡æ¯ï¼è¯·åçDebug Gï¼è½¬åï¼ã æå
³æ§è¡æ令çä¿¡æ¯ï¼è¯·åçDebug Tï¼è·è¸ªï¼ã
说æ æ§å¶ä¼ éå°è¦æµè¯çç¨åº å½ p å½ä»¤å°æ§å¶ä» Debug ä¼ éå°è¦æµè¯çç¨åºæ¶ï¼è¯¥ç¨åºä¸é´æè¿è¡ï¼ç´å°å¾ªç¯ãéå¤å符串æ令ã软件ä¸ææè
å®æäºæå®å°åçåä¾ç¨ä¸ºæ¢ï¼æè
ç´å°æ§è¡äºæå®æ°éçæºå¨æ令为æ¢ãæ§å¶è¿åå° Debugã å°ååæ°çéå¶ å¦æ address åæ°æ²¡ææå®æ®µï¼Debug å°ä½¿ç¨è¢«æµè¯ç¨åºç CS å¯åå¨ãå¦æçç¥ addressï¼ç¨åºå°ä» CS:IP å¯åå¨ææå®çå°åå¼å§æ§è¡ãå¿
é¡»å¨ address åæ°ä¹å使ç¨çå· (=) 以便å°å®ä¸ number åæ°åºåãå¦æå¨æå®å°åå¤çæ令ä¸æ¯å¾ªç¯ãéå¤çå符串æ令ã软件ä¸ææåä¾ç¨ï¼å p å½ä»¤ä¸ Debug tï¼è·è¸ªï¼å½ä»¤çä½ç¨ç¸åã ä½¿ç¨ p å½ä»¤æ¾ç¤ºçé®ä»¶ å½ p æ§è¡å®ä¸æ®µè¯´æåï¼Debug æ¾ç¤ºåºç¨åºçå¯åå¨å
容ãæ å¿çç¶æ以åä¸ä¸æ®µå°è¦è¢«æ§è¡çæ令ç解ç å½¢å¼ã è¦å ä¸è½ä½¿ç¨ p å½ä»¤è·è¸ªåªè¯»å
å (ROM)ã
èä¾ åå®æ£å¨æµè¯çç¨åºå¨å°å CS:143F å¤å
å«ä¸ä¸ª call æ令ãè¦è¿è¡ call ç®æ ä½ç½®çåç¨åºç¶åå°æ§å¶è¿åå° Debugï¼è¯·é®å
¥ä»¥ä¸å½ä»¤ï¼ p=143f Debug æ以ä¸æ ¼å¼æ¾ç¤ºç»æï¼ AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2246 ES=2246 SS=2246 CS=2246 IP=1443 NV UP EI PL NZ AC PO NC 2246:1442 7505 JNZ 144A Debug:Qï¼éåºï¼åæ¢ Debug ä¼è¯ï¼ä¸ä¿åå½åæµè¯çæ件ã å½æ¨é®å
¥ q 以åï¼æ§å¶è¿åå° DOS çå½ä»¤æ示符ã q åæ° è¯¥å½ä»¤ä¸å¸¦åæ°ã æå
³ä¿åæ件çä¿¡æ¯ï¼è¯·åçDebug Wï¼åå
¥ï¼ã Debug:Rï¼å¯åå¨ï¼æ¾ç¤ºææ¹åä¸ä¸ªæå¤ä¸ª CPU å¯åå¨çå
容ã r [register-name] åæ° æ å¦æå¨æ²¡æåæ°çæ
åµä¸ä½¿ç¨ï¼å r å½ä»¤æ¾ç¤ºææå¯åå¨çå
容以åå¯åå¨åå¨åºåä¸çæ å¿ã register-name æå®è¦æ¾ç¤ºå
¶å
容çå¯åå¨åã æå
³æ¾ç¤ºå
åé¨åå
容çä¿¡æ¯ï¼è¯·åç
温馨提示:答案为网友推荐,仅供参考