微机原ç�†å�пޥå�£æŠ€æœ?习题答案) - 百度文库 ÏÂÔØ±¾ÎÄ

·¶ÎÄ·¶Àý ѧϰָµ¼

5. ÏÂÁгÌÐò¶ÎÖ´Ðкó AX=? ÉèÊý¾Ý¶ÎÓÐ: TABLE DW 100,200,300,400 ENTRY DW 3 ´úÂë¶Î ¶ÔDS³õʼ»¯ MOV BX,OFFSET TABLE MOV SI,ENTRY MOV AX,[BX+SI] Ö´Ðкó AX=2C00

6. ½«ALÖеÄ8λ¶þ½øÖÆÊý°´µ¹Ðò·½Ê½ÖØÐÂÅÅÁУ¬¼´ALÔ­À´ÎªD7D6¡­D0£¬µ¹ÐòºóAL=D0D1¡­D7¡£

²Î¿¼´ð°¸ ¡­

MOV CX, 8

L: SHL AL, 1 RCR BL, 1 LOOP L MOV AL, BL ¡­

7.ÈôÆðʼµØÖ·Æ«ÒÆÁ¿Îª2000HµÄÄÚ´æµ¥Ôª´æ·ÅÓÐ100¸öASCIIÂë×Ö·û£¬ÏÖ¸øÕâЩ×Ö·ûÌí¼ÓÆæÅ¼Ð£Ñéλ(bit7)£¬Ê¹Ã¿¸ö×Ö·ûÖС°1¡±µÄ¸öÊýΪżÊý£¬ÔÚ˳ÐòÊä³öµ½µØÖ·Îª100HµÄ¶Ë¿Ú¡£

½â´ð MOV SI, 2000H MOV CX, 100 MOV DX, 100H NEXT2: MOV AL, [SI] ;È¡×Ö·û´®ÖÐ×Ö·ûËÍAL AND AL, 0FFH ;¸Ä±ä±ê־λ JPE NEXT1 ;¡°1¡±µÄ¸öÊýΪż,bit7²»±ä OR AL, 80H ;¡°1¡±µÄ¸öÊýÎªÆæ,bit7±äΪ1 NEXT1: OUT DX, AL INC SI LOOP NEXT2 MOV AH, 4CH INT 21H

8. ÈôSS=1000H£¬SP=2000H£¬AX=1234H£¬BX=5678H£¬FR=2115£¬ÊÔ˵Ã÷Ö´ÐÐÖ¸Áî PUSH AX PUSH BX PUSHF POP CX POP DX

wordÍêÃÀÕûÀí°æ

.

Ö®ºó£¬SP=? SS=? CX=? DX=? ²¢»­Í¼Ö¸³ö¶ÑÕ»Öи÷µ¥ÔªµÄÄÚÈÝ¡£

½â´ð: SS=1000H

SP=1FFEH CX=2115H DX=5678H Õ»Öи÷µ¥ÔªÄÚÈÝÈçÏÂËùʾ:

µØÖ· RAM 11FFAH 2115 11FFCH 5678 11FFEH 1234 12000H

µÚ4Õ ºê»ã±àÓïÑÔ

ϰÌâÓë˼¿¼Ìâ

1.»­³öÒÔϱäÁ¿ÔÚÄÚ´æÖд洢µÄʾÒâͼ¡£ D1 DB ¡®A¡¯,¡¯123¡¯,09H, 45 D2 DW ¡®A¡¯,¡¯CD¡¯,23H, 4567H D3 DD 1234H, 23456789H

2.Éè¼Æ×Ó³ÌÐò·Ö±ðÍê³ÉÒÔϹ¦ÄÜ£º

1£©¸ù¾Ý¸ø¶¨µÄ²ÎÊýÖµ£¬ÅжϸòÎÊýÊÇżÊý»¹ÊÇÆæÊý¡£ 2£©°Ñ¸ø¶¨²ÎÊýÖµµÄ¸ß¡¢µÍÊý¾Ý뻥»»¡£

3.Éè¼ÆÏàÓ¦µÄºêÍê³ÉÒÔϹ¦ÄÜ£º 1£©°Ñ¸ø¶¨µÄ²ÎÊý°´¶þ½øÖÆÏÔʾ¡£

2£©ÇóÁ½¸ö²ÎÊýµÄºÍ£¬²¢°´Ê®½øÖÆÐÎʽÏÔʾ¡£

.

·¶ÎÄ·¶Àý ѧϰָµ¼

µÚ5Õ »ã±àÓïÑÔ³ÌÐòÉè¼Æ

ϰÌâÓë˼¿¼Ìâ

1. ÉèÊý¾Ý¶ÎÖÐÓÐ×Ö½ÚÐ͵¥ÔªNUMBERºÍFLAG£¬ÅжÏNUMBERÓë¸ø¶¨µÄXºÍYµÄ´óС¹ØÏµ(XY£¬ÔòÖÃFLAG£½1£¬ÈôNUMBER

½â´ð£º.486 Data segment NUMBER db ? FLAG db ? Data ends Code segment

Assume cs: Code, ds: Data Beg: mov ax,data Mov ds,ax

mov al, X Mov bl, Y Cmp NUMBER, X Jnc P1

Mov FLAG, 0FFH Jmp exit

P1: cmp NUMBER, Y Ja P2

Mov FLAG, 00H Jmp exit

P2: mov FLAG, 01H Exit: mov ah, 4ch Int 21h Code ends End Beg

2. ¼ÆËã1£«2£«3£«¡­£«100£¬²¢°ÑºÍ±£´æÔÚSUMµ¥ÔªÖС£ .486

DATA SEGMENT USE16

TT DB 1 SUM DW ? DATA ENDS

CODE SEGMENT USE16

wordÍêÃÀÕûÀí°æ

.

ASSUME CS:CODE,DS:DATA BEG: MOV AX , DATA MOV DS, AX MOV CX, 100 MOV AX, 0 START: ADD AX, TT INC TT

LOOP START MOV SUM, AX MOV AH, 4CH MOV 21H

CODE ENDS

END BEG

3. ¶ÔÒ»¸ö¸ø¶¨µÄNÊý¾Ý£¬ÓÃðÅÝÅÅÐò·¨½øÐÐÅÅÐò¡£ ½â´ð£º.486

Data segment

Buf db ¡®abcd18437hj¡¯ Lens equ $-buf Count db lens Flag db ? Data ends Code segment

Assume cs: code, ds: data Beg: mov ax, data Mov ds, ax Again: dec count Jz done Mov flag, 0 Mov cx, count

Mov si, offset buf Last: mov al, [si] Mov ah, [si+1] Cmp ah, al Jnc next

Mov [si], ah Mv [si+1], al Mov flag, 1 Next: inc si

.