»ã±àÓïÑÔ³ÌÐòÉè¼Æ£¨µÚËİ棩µÚ2ÕÂ[¿Îºó´ð°¸]

.

and al,0fh ;ʵÏÖASCIIµ½·ÇѹËõBCDÂëµÄת»» or al,30h ;ʵÏÖ·ÇѹËõBCDÂëµ½ASCIIµÄת»» ·½·¨¶þ£º

xor al,30h £»Çó·´D5D4룬ÆäËû²»±ä £»¼´¸ß4λΪ3£¬Ôò±äΪ0£»¸ß4λΪ0£¬Ôò±äΪ3 £¨3£© mov cl,4

again: shr dx,1 ;ʵÏÖÂß¼­ÓÒÒÆ

£»²ÉÓá°sar dx,1¡±£¬ÔòʵÏÖËãÊõÓÒÒÆ rcr ax,1 dec cl jnz again

¡²Ï°Ìâ2.14¡³ÒÑÖªAL = F7H£¨±íʾÓзûºÅÊý-9£©£¬·Ö±ð±àдÓÃSARºÍIDIVÖ¸ÁîʵÏֵijýÒÔ2µÄ³ÌÐò¶Î£¬²¢ËµÃ÷¸÷×ÔÖ´Ðкó£¬ËùµÃµÄÉÌÊÇʲô£¿

¡²½â´ð¡³ £¨1£©ÓÃsar±àд

mov al,0f7h ; -9ËÍAL 1111 1001

sar al,1 ; ½á¹û£ºAL=1111 1100B=0FBH ¼´-5 £¨2£©ÓÃidiv±àд

mov al,0f7h ; -9ËÍal cbw ; ×Ö½Ú·ûºÅÀ©Õ¹Î»×Ö mov bl,2 ; ×¢Òâ³ýÊý²»¿ÉΪÁ¢¼´Êý idiv bl ; ½á¹û£ºÉÌΪal=fch (-4) ; ÓàÊý£ºah=ffh (-1) ½áÂÛ£º·ûºÅÊýµÄ³ý·¨ÓÃidiv ׼ȷ¡£

¡²Ï°Ìâ2.15¡³Ö¸ÁîÖ¸ÕëIPÊÇͨÓüĴæÆ÷»¹ÊÇרÓüĴæÆ÷£¿ÓÐÖ¸ÁîÄܹ»Ö±½ÓËü¸³ÖµÂð£¿ÄÄÀàÖ¸ÁîµÄÖ´Ðлá¸Ä±äËüµÄÖµ£¿

¡²½â´ð¡³

Ö¸ÁîÖ¸ÕëIP²»ÊÇͨÓüĴæÆ÷£¬²»¿ÉÖ±½Ó¸³Öµ£¬ÊôÓÚרÓüĴæÆ÷¡£ÓÐÇÒ½öÓÐÑ­»·¡¢×ªÒÆ¡¢×Ó³ÌÐòµ÷Óúͷµ»Ø¡¢ÖжÏÀàµÈÖ¸Áî¿ÉÒԸıäËüµÄÖµ¡£

¡²Ï°Ìâ2.16¡³¿ØÖÆתÒÆÀàÖ¸ÁîÖÐÓÐÄÄÈýÖÖÑ°Ö··½Ê½£¿

¡²½â´ð¡³

- 9 -Ò³

.

¿ØÖÆתÒÆÀàÖ¸ÁîµÄÑ°Ö··½Ê½£ºÏà¶ÔÑ°Ö·¡¢Ö±½ÓÑ°Ö··½Ê½ºÍ¼ä½ÓÑ°Ö··½Ê½£¨ÓÖ¿ÉÒԷֳɼĴæÆ÷ºÍ´æ´¢Æ÷¼ä½ÓÑ°Ö·£©¡£

¡²Ï°Ìâ2.17¡³Ê²Ã´ÊǶÌתÒÆshort jump¡¢½üתÒÆnear jumpºÍԶתÒÆfar jump£¿Ê²Ã´ÊǶÎÄÚתÒƺͶμäתÒÆ£¿8086ÓÐÄÄЩָÁî¿ÉÒÔʵÏֶμäתÒÆ£¿

¡²½â´ð¡³

¶ÌתÒÆ£ºÖ¸¶ÎÄÚ£­128¡«127Ö®¼äµÄתÒÆ£¬Î»ÒÆÁ¿ÓÃÒ»¸ö×Ö½Ú±íʾ ½üתÒÆ£ºÖ¸¶ÎÄÚ¡À32KÖ®¼äµÄתÒÆ£¬Î»ÒÆÁ¿ÓÃÒ»¸ö×Ö±íʾ ԶתÒÆ£ºÖ¸¶Î¼ä1MB·¶Î§µÄתÒÆ

¶ÎÄÚתÒÆ£ºÖ¸ÔÚͬһ¸ö´úÂë¶ÎÄÚµÄתÒÆ£¬¿ÉÒÔÊǶÌתÒÆ»òÕß½üתÒÆ ¶Î¼äתÒÆ£ºÖ¸×ªÒƵ½ÁíÍâÒ»¸ö´úÂë¶Î£¬¾ÍÊÇԶתÒÆ

8086/8088CPUµÄJMP¡¢CALLºÍINT nÖ¸Áî¿ÉÒÔʵÏֶμäתÒÆ

¡²Ï°Ìâ2.18¡³8086µÄÌõ¼þתÒÆÖ¸ÁîµÄתÒÆ·¶Î§Óжà´ó£¿Êµ¼Ê±à³Ìʱ£¬ÄãÈçºÎ´¦Àí³¬³ö·¶Î§µÄÌõ¼þתÒÆ£¿

¡²½â´ð¡³

8086µÄÌõ¼þתÒƵÄתÒÆ·¶Î§£ºÔÚµ±Ç°Ö¸ÁîµØÖ·µÄ +127¡«-128Ö®ÄÚ¡£

ÈçÌõ¼þתÒƵÄתÒÆ·¶Î§³¬³ö´Ë·¶Î§£¬¿ÉÔÚ´Ë·¶Î§ÄÚ°²ÅÅÒ»ÌõÎÞÌõ¼þתÒÆ£¬ÔÙתÒƵ½·¶Î§ÍâµÄÄ¿±êµØÖ·¡£

¡²Ï°Ìâ2.19¡³¼ÙÉèDS=2000H£¬BX=1256H£¬SI=528FH£¬Î»ÒÆÁ¿TABLE=20A1H£¬[232F7H]=3280H£¬[264E5H]=2450H£¬ÊÔÎÊÖ´ÐÐÏÂÁжÎÄÚ¼ä½ÓÑ°Ö·µÄתÒÆÖ¸Áîºó£¬×ªÒƵÄÓÐЧµØÖ·ÊÇʲô£¿

£¨1£© JMP BX

£¨2£© JMP TABLE[BX] £¨3£© JMP [BX][SI] ¡²½â´ð¡³

£¨1£©×ªÒƵÄÓÐЧµØÖ·EA= BX=1256H

£¨2£©×ªÒƵÄÓÐЧµØÖ·EA= [DS:20A1H+1256H]=[232F7]=3280H £¨3£©×ªÒƵÄÓÐЧµØÖ·EA= [DS:1256H+528FH]=264E5H=2450H ¡²Ï°Ìâ2.20¡³ÅжÏÏÂÁгÌÐò¶ÎÌøתµÄÌõ¼þ

£¨1£© xor ax,1e1eh je equal £¨2£©test al,10000001b jnz there £¨3£©cmp cx,64h jb there ¡²½â´ð¡³

- 10 -Ò³

.

£¨1£©AX£½1e1eh£¨Òì»òºóΪ0£© £¨2£©ALµÄD0»òD7ÖÁÉÙÓÐһλΪ1 £¨3£©CX£¨ÎÞ·ûºÅÊý£©£¼ 64h

¡²Ï°Ìâ2.21¡³ÉèÖÃCX = 0£¬ÔòLOOPÖ¸Áѭ»·¶àÉٴΣ¿ÀýÈ磺

mov cx,0 delay: loop delay ¡²½â´ð¡³ 216´Î¡£

¡²Ï°Ìâ2.22¡³¼ÙÉèAXºÍSI´æ·ÅµÄÊÇÓзûºÅÊý£¬DXºÍDI´æ·ÅµÄÊÇÎÞ·ûºÅÊý£¬ÇëÓñȽÏÖ¸ÁîºÍÌõ¼þתÒÆÖ¸ÁîʵÏÖÒÔÏÂÅжϣº

£¨1£©ÈôDX > DI£¬×ªµ½aboveÖ´ÐУ» £¨2£©ÈôAX > SI£¬×ªµ½greaterÖ´ÐУ» £¨3£©ÈôCX = 0£¬×ªµ½zeroÖ´ÐУ»

£¨4£©ÈôAX£­SI²úÉúÒç³ö£¬×ªµ½overflowÖ´ÐУ» £¨5£©ÈôSI¡ÜAX£¬×ªµ½less_eqÖ´ÐУ» £¨6£©ÈôDI¡ÜDX£¬×ªµ½below_eqÖ´ÐС£ ¡²½â´ð¡³

£¨1£©ÈôDX > DI£¬×ªµ½aboveÖ´ÐÐ cmp dx,di

ja above £»£½jnbe above £¨2£©ÈôAX > SI£¬×ªµ½greaterÖ´ÐÐ cmp ax,si

jg greater £»£½jnle greater £¨3£©ÈôCX = 0£¬×ªµ½zeroÖ´ÐÐ cmp cx,0

jz zero ;£½ jcxz zero

£¨4£©ÈôAX£­SI²úÉúÒç³ö£¬×ªµ½overflowÖ´ÐУ» cmp ax,si jo overflow

£¨5£©ÈôSI¡ÜAX£¬×ªµ½less_eqÖ´ÐУ» cmp si,ax ; cmp ax,si

- 11 -Ò³

.

jle less_eq ; jge less_eq £¨6£©ÈôDI¡ÜDX£¬×ªµ½below_eqÖ´ÐС£ cmp di,dx ; cmp dx,di jbe below_eq ; jae below_eq

¡²Ï°Ìâ2.23¡³ÓÐÒ»¸öÊ×µØַΪarrayµÄ20¸ö×ÖµÄÊý×飬˵Ã÷ÏÂÁгÌÐò¶ÎµÄ¹¦ÄÜ¡£

mov cx,20 mov ax,0 mov si,ax

sum_loop: add ax,array[si] add si,2 loop sum_loop mov total,ax ¡²½â´ð¡³

½«Ê×µØַΪarrayµÃ20¸ö×ÖµÄÊý×éÇóºÍ£¬²¢½«½á¹û´æÈë total µ¥ÔªÖС£ ¡²Ï°Ìâ2.24¡³°´ÕÕÏÂÁÐÒªÇ󣬱àдÏàÓ¦µÄ³ÌÐò¶Î£º

£¨1£©ÆðʼµØַΪstringµÄÖ÷´æµ¥ÔªÖдæ·ÅÓÐÒ»¸ö×Ö·û´®£¨³¤¶È´óÓÚ6£©£¬°Ñ¸Ã×Ö·û´®ÖеĵÚ1¸öºÍµÚ6¸ö×Ö·û£¨×Ö½ÚÁ¿£©´«Ë͸øDX¼Ä´æÆ÷¡£

£¨2£©´ÓÖ÷´æbuffer¿ªÊ¼µÄ4¸ö×Ö½ÚÖб£´æÁË4¸ö·ÇѹËõBCDÂ룬ÏÖ°´µÍ£¨¸ß£©µØÖ·¶ÔµÍ£¨¸ß£©Î»µÄÔ­Ôò£¬½«ËüÃǺϲ¢µ½DXÖС£

£¨3£©±àдһ¸ö³ÌÐò¶Î£¬ÔÚDX¸ß4λȫΪ0ʱ£¬Ê¹AX = 0£»·ñÔòʹAX = -1¡£

£¨4£©ÓÐÁ½¸ö64λÊýÖµ£¬°´¡°Ð¡¶Ë·½Ê½¡±´æ·ÅÔÚÁ½¸ö»º³åÇøbuffer1ºÍbuffer2ÖУ¬±àд³ÌÐò¶ÎÍê³Ébuffer1£­buffer2¹¦ÄÜ¡£

£¨5£©¼ÙÉè´ÓB800h : 0¿ªÊ¼´æ·ÅÓÐ100¸ö16λÎÞ·ûºÅÊý£¬±à³ÌÇóËüÃǵĺͣ¬²¢°Ñ32λµÄºÍ±£´æÔÚDX.AXÖС£

£¨6£©ÒÑÖª×Ö·û´®string°üº¬ÓÐ32KBÄÚÈÝ£¬½«ÆäÖеġ¯$¡¯·ûºÅÌæ»»³É¿Õ¸ñ¡£

£¨7£©ÓÐÒ»¸ö100¸ö×Ö½ÚÔªËصÄÊý×飬ÆäÊ×µØַΪarray£¬½«Ã¿¸öÔªËؼõ1£¨²»¿¼ÂÇÒç³ö£©´æÓÚÔ­´¦¡£ £¨8£©Í³¼ÆÒÔ ¡¯$¡¯ ½áβµÄ×Ö·û´®srtingµÄ×Ö·û¸öÊý¡£ ¡²½â´ð¡³ £¨1£©½â´ð£º mov si,0

mov dl,string[si] £»µÚ1¸ö×Ö·ûËÍdl¼Ä´æÆ÷£ºmov dl,stirng[0] mov si,5

- 12 -Ò³

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)