»ã±àÓïÑÔÀëÏß×÷Òµ2

ÀëÏß×÷Òµ2´ð°¸

2.22¡¢ÅжÏÏÂÁгÌÐò¶ÎÌø×ªµÄÌõ¼þ £¨1£© XOR AX,1E1EH JE EQUAL

£¨2£©TEST AL,10000001B JNZ THERE £¨3£© CMP CX,64H JB THERE £¨1£©£¨1£© xor ax,1e1eh je equal

£»AX£½1e1eh£¨Òì»òºóΪ0£© £¨2£©test al,10000001b jnz there

£»ALµÄD0»òD7ÖÁÉÙÓÐһλΪ1 £¨3£© cmp cx,64h jb there

£»CX£¨ÎÞ·ûºÅÊý£©£¼ 64h XOR 2.24¡¢¼ÙÉè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 jcxz zero jz zero

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

jo overflow

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

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

jae below_eq £¨1£©ÈôD 2.26¡¢°´ÕÕÏÂÁÐÒªÇ󣬱àдÏàÓ¦µÄ³ÌÐò¶Î£º

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

£¨3£©±àдһ¸ö³ÌÐò¶Î£¬ÔÚDX¸ß4λȫΪ0ʱ£¬Ê¹AX = 0£»·ñÔòʹAX = -1¡£ £¨6£©ÒÑÖª×Ö·û´®STRING°üº¬ÓÐ32KBÄÚÈÝ£¬½«ÆäÖеġ¯$¡¯·ûºÅÌæ»»³É¿Õ¸ñ¡£ £¨7£©ÓÐÒ»¸ö100¸ö×Ö½ÚÔªËØµÄÊý×飬ÆäÊ×µØÖ·ÎªARRAY£¬½«Ã¿¸öÔªËØ¼õ1£¨²»¿¼ÂÇÒç³ö£©´æÓÚÔ­´¦¡£

£¨8£©Í³¼ÆÒÔ ¡¯$¡¯ ½áβµÄ×Ö·û´®SRTINGµÄ×Ö·û¸öÊý¡£

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

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

mov dh,string[si] £»µÚ6¸ö×Ö·ûËÍdh¼Ä´æÆ÷

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

mov al,buffer[si] £»µÚÒ»×Ö½Ú inc si

mov ah,buffer[si] £»µÚ¶þ×Ö½Ú mov cl,4

shl ah,cl £»BCDÂëÒÆµ½¸ß°ë×Ö½Ú or al,ah £»×éºÏ³ÉѹËõBCDÂë mov dl,al £»´æÈëdl¼Ä..

inc si

mov al,buffer[si] £»µÚÈý×Ö½Ú inc si

mov ah,buffer[si] £»µÚËÄ×Ö½Ú mov cl,4

shl ah,cl £»BCDÂëÒÆµ½¸ß°ë×Ö½Ú or al,ah £»×éºÏ³ÉѹËõBCDÂë mov dh,al £»´æÈëdh¼Ä..

(3) ±àдһ¸ö³ÌÐò¶Î£¬ÔÚDX¸ß4λȫΪ0ʱ£¬Ê¹AX = 0£»·ñÔòʹAX = -1¡£ test dx,0f000h jz zero mov ax,-1 jmp done zero: mov ax,0 done: ret

(4) ÓÐÁ½¸ö64λÊýÖµ£¬°´¡°Ð¡¶Ë·½Ê½¡±´æ·ÅÔÚÁ½¸ö»º³åÇøbuffer1ºÍbuffer2ÖУ¬±àд³ÌÐò¶ÎÍê³Ébuffer1£­buffer2¹¦ÄÜ¡£ lea bx,buffer1 lea dx,buffer2 mov cx,8 £»8¸ö×Ö½Ú xor si,si £»si=0 clc £»CF=0

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

xor si,si £»µØÖ·Æ«ÒÆÁ¿si=0 xor dx,dx £»ºÍµÄ¸ß×Ödx=0 mov cx,99 £»¼ÓµÄ´ÎÊý mov ax,[si] £»µÚÒ»¸öÊý

again: inc si £»Ö¸ÏòÏÂÒ»¸ö×Öµ¥Ôª inc si

add ax,[si] £»¼ÓÏÂÒ»¸öÊý jnc noc £»ÎÞ½øÎ»×ª

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4