JBE NEXT2
NEXT: STOSB
NEXT2:LOOP AGAIN2 ;½«STRING×Ö·û´®ÇåÁã
LEA DI,STRING MOV AL,0
MOV CX,COUNT CLD
REP STOSB RET
MAIN ENDP CODE ENDS END MAIN
13¡¢ÍêÕûµÄ³ÌÐòÈçÏ£º CODE SEGMENT ASSUME CS:CODE MAIN PROC FAR
PUSH DS XOR AX,AX PUSH AX
XOR SI,SI ;SIÖдæ·ÅDXÖÐ1µÄ¸öÊý XOR DX,DX MOV AX,1234H MOV CX,16
AGAIN:ROR AX,1
JNC NEXT INC SI PUSH CX DEC CL MOV BX,1 SHL BX,CL OR DX,BX POP CX
NEXT: LOOP AGAIN
RET
MAIN ENDP CODE ENDS END MAIN
³ÌÐòµÄÔËÐнá¹û£ºAX=1234H DX=2C48H SI=0005H£¬½á¹ûÕýÈ· 14¡¢²Î¿¼´ð°¸£º Ö¸Áî £¨1£©JMP PROG_N £¨2£©JMP BX £¨3£©JMP [BX] Ìø×ªÀàÐÍ ¶ÎÄÚÖ±½ÓÌø×ª ¶ÎÄÚ¼ä½ÓÌø×ª ¶ÎÄÚ¼ä½ÓÌø×ª ³ÌÐòµÄתÏò* IP=0278H IP=(BX)=0300H IP=((DS)¡Á16£«(BX))=(20300H)=4800H £¨4£©JMP FAR PROG_F £¨5£©JMP DWORD PTR [BX] ¶Î¼äÖ±½ÓÌø×ª ¶Î¼ä¼ä½ÓÌø×ª IP=0ABCH CS=3400H IP=(20300H)=4800H CS=(20302H)=00FFH *Èç¹ûÊǶÎÄÚ×ªÒÆ£¬Ìø×ªÖ¸ÁîÖ»¸Ä±äIP¼Ä´æÆ÷µÄÄÚÈÝ£¬Ç°ÈýÌõÌø×ªÖ¸ÁîÊǶÎÄÚÌø×ª£»Èç¹ûÊǶμäÌø×ª£¬Ìø×ªÖ¸Áîͬʱ¸Ä±äIPºÍCS¼Ä´æÆ÷µÄÄÚÈÝ£¬ºóÁ½ÌõÌø×ªÖ¸ÁîÊǶμäÌø×ª¡£ 15¡¢²Î¿¼´ð°¸£º ¼Ä´æÆ÷ AX BX CX DX LOOP NEXT 2 3 4 5 4 7 11 16 3 2 1 0 1 0 0 0 LOOPE NEXT 2 4 3 1 LOOPNE NEXT 2 3 4 7 3 2 1 0 ×¢Ò⣺Èý¸öÑ»·Ö¸ÁîLOOP¡¢LOOPEºÍLOOPNEÖÕֹѻ·µÄÌõ¼þÊDz»Ò»ÑùµÄ¡£ 16¡¢²Î¿¼´ð°¸£º ÖжÏÏòÁ¿±íµÄ×÷ÓãºÖжÏÏòÁ¿±íÓÃÓÚ´æ·Å256ÖÖÖжϵÄÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·£¬Ã¿ÖÖÀàÐÍÖжϵÄÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·Õ¼ÓÃ4¸ö×Ö½Ú£¬´æ´¢CSºÍIP£¬×ܹ²ÐèÒª1024¸ö×Ö½Ú£¬¼´1K×Ö½Ú¡£
ÖжÏÏòÁ¿±íλÓÚÄÚ´æµÄ×îµÍ1K×Ö½Ú£¬µØÖ··¶Î§Îª£º00000H~003FFH¡£
ÀàÐÍ3µÄÖжϵÄÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·´æ·ÅÔÚ£º0000CH~0000FHÕâËĸöµ¥Ôª¡£ 17¡¢²Î¿¼´ð°¸£ºÈçÏÂͼËùʾ
½âÊÍ£º¢ÙÓÉÓÚÖжÏÀàÐͺÅΪ2£¬ËùÒÔ¸ÃÀàÐÍÖжϵÄÖжϷþÎñ³ÌÐòÈë¿ÚµØÖ·Õ¼¾ÝÄÚ´æ×îµÍ1K×Ö½ÚµÄ2¡Á4£¬2¡Á4+1£¬2¡Á4+2£¬2¡Á4+3Ëĸöµ¥Ôª¡£¢ÚǰÁ½¸öµ¥Ôª´æ·ÅÖжϷþÎñ³ÌÐòIPÖµ£¬¼´0016H£¬ºóÁ½¸öµ¥Ôª´æ·ÅÖжϷþÎñ³ÌÐòµÄCSÖµ£¬¼´
0485H¡£¢ÛÓÉÓÚCSºÍIPÖµ¾ùΪһ¸ö×Ö£¬ËùÒÔÔÚ´æ·ÅÖжϷþÎñ³ÌÐòÈë¿ÚµØÖ·µÄCSºÍIPֵʱ£¬µÍλ×Ö½Ú´æ·ÅÔڵ͵ØÖ·Çø£¬¸ßλ×Ö½Ú´æ·ÅÔڸߵØÖ·Çø¡£
18¡¢²Î¿¼´ð°¸£º
£¨1£©ÖжÏÀàÐͺÅΪ16
£¨2£©¸ÃÖжϷþÎñ³ÌÐòµÄÆðʼµØÖ·ÊÇ£ºCS:IP=D169H:240BH
½âÊÍ£º¢ÙÓÉÓÚÖжÏÏòÁ¿±íÖеØÖ·Îª0040H¿ªÊ¼´æ·ÅijÀàÐÍÖжϵÄÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·£¬ËùÒÔ0040H³ýÒÔ4¾Í¿ÉÒԵõ½¸ÃÀàÐÍÖжϵÄÖжÏÀàÐͺÅn£¬¼´n=16¡£¢ÚÖжϷþÎñ³ÌÐòµÄÈë¿ÚµØÖ·µÄCSÖµ´æ·ÅÔÚ0042Hµ¥ÔªÀIPÖµ´æ·ÅÔÚ0040Hµ¥ÔªÀï¡£ 19¡¢²Î¿¼´ð°¸£º ÖжÏÀàÐͺţ¨×¨ÓÃÖжϣ© 0£º±»0³ý 1£ºµ¥²½Öжϣ¬ÓÉDebugµ¥²½µ÷ÊÔÒýÆð 2£ºNMI ÏìÓ¦ÖжϵÄÌõ¼þ µ±³ýÊýΪ0»òÉ̳¬¹ýÁ˼ĴæÆ÷ËùÄܱíʾµÄ·¶Î§£¬¾Í²úÉúÁËÒ»¸öÀàÐÍΪ0µÄÖÐ¶Ï µ±TF=1£¬Ã¿ÌõÖ¸ÁîÖ´Ðкó£¬CPU×Ô¶¯²úÉúÀàÐÍΪ1µÄÖÐ¶Ï ²»¿ÉÆÁ±ÎÖжϣ¬ÓÃÀ´´¦Àí½ô¼±Ê¼þ£¬È磺µçÔ´µôµç£¬CPU±ØÐëÓèÒÔÏìÓ¦ 3£º¶ÏµãÖжϣ¬ÓÉDebugÉèÖöϵãÒýÆð ÓÃdebugµ÷ÊÔ³ÌÐòʱ£¬¿ÉÓÃgÃüÁîÉèÖöϵ㣬µ±CPUÖ´Ðе½¶Ïµãʱ±ã²úÉúÀàÐÍΪ3µÄÖжϣ¬Í¬Ê±ÏÔʾµ±Ç°¸÷¼Ä´æÆ÷ºÍÓйش洢Æ÷µÄÄÚÈݼ°ÏÂÌõÒªÖ´ÐеÄÖ¸Á¹©Óû§¼ì²é¡£ Èç¹ûµ±Ç°ÔËËãµÄ½á¹û²úÉúÒç³ö£¬ÔòOF=1,ÏÂÃæ½ô¸úÒç³öÖжÏÖ¸ÁîINTO£¬Á¢¿Ì²úÉúÒ»¸öÀàÐÍΪ4µÄÖÐ¶Ï 4£ºÒç³öÖжÏ
20¡¢²Î¿¼´ð°¸£º
MOV CX,N ;4¸öʱÖÓÖÜÆÚ
NEXT: NOP ;N¡Á3¸öʱÖÓÖÜÆÚ NOP ;N¡Á3¸öʱÖÓÖÜÆÚ LOOP NEXT ;(N-1)¡Á17+1¡Á5¸öʱÖÓÖÜÆÚ
5?10?3?25000¸öʱÖÓÖÜÆÚ ÓÉf=5MHz£¬t=0.2us£¬ÑÓʱ5msÐèÒª?60.2?10ËùÒÔ£º4+N¡Á3£«N¡Á3£«(N-1)¡Á17+1¡Á5=25000 ½âµÃ£ºN=1087
µÚËÄÕ£¨p205~p206£©
1¡¢²Î¿¼´ð°¸£¨Ð´³ö¸÷±äÁ¿ÔÚÄÚ´æÖеĴ洢״¿ö£© A1 DW 23H,5678H
A2 DB 3 DUP(?),0AH,0DH,¡¯$¡¯ A3 DD 5 DUP(1234H,567890H) A4 DB 4 DUP(3 DUP(1,2,¡¯ABC¡¯))
¢Ù±äÁ¿A1Õ¼4¸ö×Ö½Ú£¬ÔÚÄÚ´æÖеĴ洢״¿ö£¨ÒÔÊ®Áù½øÖƱíʾ£¬´Ó×óµ½ÓÒµØÖ·ÒÀ´ÎÔö¼Ó£¬ÒÔÏÂͬ£©£º 23 00 78 56
¢Ú±äÁ¿A2Õ¼6¸ö×Ö½Ú£¬ÔÚÄÚ´æÖеĴ洢״¿ö£º 00 00 00 0A 0D 24
¢Û±äÁ¿A3Õ¼40¸ö×Ö½Ú£¬ÔÚÄÚ´æÖеĴ洢״¿ö£º 34 12 00 00 90 78 56 00 (ÔÙÖØ¸´4±é)
¢Ü±äÁ¿A4Õ¼60¸ö×Ö½Ú£¬ÔÚÄÚ´æÖеĴ洢״¿ö£º
01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43£¨´øÏ»Ïß²¿·ÖÖØ¸´4±é£©
2¡¢²Î¿¼´ð°¸£¨Ð´³ö¸÷Ö¸ÁîÖ´ÐкóµÄ½á¹û£© Ö¸Áî MOV AX,00FFH AND 1122H+3344H MOV AL,15 GE 1111B MOV AX,00FFH LE 255+6/5 AND AL,50 MOD 4 ½á¹û AX=0066H£¬ÏȼӺóÓë AL=0FFH AX=0FFFFH£¬ÏȼӺó±È½Ï AL=02H OR AX,0F00FH AND 1234 OR 00FFH AX=0FFFFH£¬ÏÈÓëºó»ò£¬ÔٰѼÆËãµÄ½á¹ûͬAX½øÐлòÔËË㣬×îÖÕ½á¹û±£´æÔÚAXÖÐ 3¡¢²Î¿¼´ð°¸£º
L=6£¬LµÄֵʵ¼Ê¾ÍÊÇBUF±äÁ¿ÔÚÄÚ´æÖÐÕ¼ÓеÄ×Ö½ÚÊý¡£ 4¡¢²Î¿¼´ð°¸£º
PLENGTH=22£¬PLENGTHµÄֵʵ¼Ê¾ÍÊÇÈý¸ö±äÁ¿PAR¡¢PNAMEºÍCOUNTÔÚÄÚ´æÖÐÕ¼ÓеÄ×ܵÄ×Ö½ÚÊý¡£
5¡¢²Î¿¼´ð°¸£ºAX=1 BX=20 CX=1
6¡¢²Î¿¼´ð°¸£º AH=00H 7¡¢£¨1£©ÀûÓÃÖжϵ÷ÓòúÉú5ÃëÑÓʱ data segment
s db '5 second is gone',13,10,'$' data ends
code segment
assume cs:code,ds:data main proc far mov ax,data mov ds,ax mov ah,2ch int 21h ;È¡µÃµ±Ç°Ê±¼ä:ch?ʱ cl?·Ö dh?Ãë dl?1/100Ãë mov bl,dh continue: mov ah,2ch int 21h sub dh,bl cmp dh,5 jb continue ;ÅжÏÁ½´ÎÈ¡µÃʱ¼ä¼ä¸ôÊÇ·ñΪ5ÃëÖÓ£¬Èç¹û²»ÊÇÔò¼ÌÐø¶Áȡʱ¼ä lea dx,s ;Èç¹û´ïµ½5Ã룬ÔòÏÔʾһÌõÐÅÏ¢ mov ah,9 int 21h mov ax,4c00h int 21h main endp code ends end main
£¨2£©ÀûÓÃÖжϵ÷Óã¬ÔÚÆÁÄ»ÉÏÏÔʾ1¡«9Ö®¼äµÄËæ»úÊý
˼·£ºÀûÓÃDOSϵͳ¹¦Äܵ÷Óõõ½µ±Ç°Ê±¼ä£¬ÆäÖеÄdl¼Ä´æÆ÷Öдæ·ÅµÄÊÇ1/100Ã룬¿ÉÒÔÓÃÀ´²úÉúËæ»úÊý¡£
code segment assume cs:code main proc far mov ah,2ch int 21h mov al,dl ;È¡µÃ1/100Ã룬²»Í¬Ê±¼äÔËÐиóÌÐòʱµÃµ½µÄÕâ¸öÊý×ÖÒ²²»Ò»Ñù£¬¾ßÓÐËæ»úÐÔ mov ah,0 mov bl,9 ;³ýÒÔ9 div bl ;Ïà³ýºóµÄÓàÊýahµÄ·¶Î§Îª0¡«8 inc ah ;¼Ó1ºóµÃµ½1¡«9Ö®¼äµÄÊý add ah,30h ;ת»»ÎªASCIIÂë mov dl,ah mov ah,2 int 21h ;ÔÚÆÁÄ»ÉÏÏÔʾ¸ÃÊý mov ax,4c00h int 21h main endp code ends end main 8¡¢£¨1£©¶þ½øÖƵ½Ñ¹ËõBCDÂëµÄת»»¡£°ÑAXÖеĶþ½øÖÆÊýת»»ÎªÑ¹ËõµÄBCDÂ룬ÈÔÈ»´æ·ÅAX¼Ä´æÆ÷ÖС£
ÀýÈ磺Èç¹ûAXÖеĶþ½øÖÆÊýΪ0010 0110 1001 0100B=2694H£¬»¯³ÉÊ®½øÖÆÊýÊÇ9876£¬ÆäѹËõµÄBCDÂëÊÇ1001 1000 0111 0110£¬ÓÃÊ®Áù½øÖƱíʾÊÇ9876H¡£¼´ÕâÖÖת»»Êµ¼Ê¾ÍÊǰÑ2694Hת»»Îª9876H¡£¿¼Âǵ½AXÖÐÄܹ»´æ·ÅµÄ×î´óµÄËÄλѹËõBCDÊýΪ9999H£¬ËùÒÔÔÚת»»Ö®Ç°ÐèÒªÅжÏAXÖеĶþ½øÖÆÊý²»Äܳ¬¹ý9999£¬¼´270FH¡£
µÚÎåÕ£¨p237~238£©
1¡¢¾²Ì¬RAMºÍ¶¯Ì¬RAMµÄÇø±ð ¼¯³É¶È ÈÝÁ¿ ˢРËÙ¶È Ó¦Óó¡ºÏ ¾²Ì¬RAM(SRAM) µÍ С ÎÞ ¿ì ¸ßËÙ»º³å´æ´¢Æ÷(CACHE) ¶¯Ì¬RAM(DRAM) ¸ß ´ó ¸½¼ÓË¢Ðµç· ½ÏÂý ÄÚ´æÌõ 2¡¢ROM¡¢PROM¡¢EPROM¡¢EEPROMÔÚ¹¦ÄÜÉϸ÷ÓкÎÌØµã ´ð°¸ÂÔ£¨¼û½Ì²Äp208£©
3¡¢DRAMµÄCASºÍRASÊäÈëµÄÓÃ;ÊÇʲô£¿