΢»úÔ­Àí¿ÎºóϰÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

±¾ÕÂ×÷Òµ²Î¿¼ÊéÄ¿£º

1.ÖÜÃ÷µÂ£º ΢ÐͼÆËã»úIBM-PCϵͳԭÀíÓëÓ¦Óà Ç廪´óѧ³ö°æÉç 1991 2.ÍõÓÀɽµÈ£º ΢ÐͼÆËã»úÔ­ÀíÓëÓ¦Óà Î÷°²µç×Ó¿Æ´ó³ö°æÉç 1998 3.ÕÅ»³Á«£º IBMPC»ã±àÓïÑÔ³ÌÐòÉè¼Æ µç×Ó¹¤Òµ³ö°æÉç 1990

×¢£º±¾Ï°Ìâ½âÖеijÌÐò½öΪ´úÂëÆ¬¶Î£¬¿ÉÔÚEmu8086 version 2.57»·¾³Ï·ÂÕæÔËÐУ¬Èç¹ûÔÚMASMϽøÐлã±à£¬ÐèÌí¼Ó¶ÎÉèÖÃÒÔ¼°ÏàÓ¦µÄαָÁî¡£

3.1

MOV AX£¬00H£»

SUB AX£¬AX£» MOV AX£¬[BX]£» MOV AX£¬TABLE£» MOV AL£¬ARAY1[SI]£» MOV AX£¬[BX+6]£»

Á¢¼´Ñ°Ö· ¼Ä´æÆ÷Ѱַ ¼Ä´æÆ÷¼ä½ÓѰַ Ö±½ÓѰַ

¼Ä´æÆ÷Ïà¶ÔѰַ ¼Ä´æÆ÷Ïà¶ÔѰַ

3.2 Èô1KBµÄÊý¾Ý´æ·ÅÔÚTABLEÒÔÏ£¬ÊÔ±àд³ÌÐò½«¸ÃÊý¾Ý°èµ½NEXT֮ϡ£

³ÌÐòƬ¶ÎÈçÏ£º

ORG 100h

MOV CX,03FFH£»Êý¾Ý¸öÊý LEA SI,TABLE£»Ô´ÇøÊ×µØÖ· LEA DI,NEXT£» Ä¿µÄÇøÊ×µØÖ· AGAIN: MOV AL,[SI]£» MOV [DI],AL£» °áÒÆ

INC SI

INC DI£» ÒÆ¶¯µØÖ·Ö¸Õë DEC CX£» Ñ­»·¼ÆÊýÆ÷µÝ¼õ JNZ AGAIN£» Ñ­»·Î´½áÊø×ª HLT£» ÔÝÍ£

TABLE DB 1024 dup ('A')£» Ô´Êý¾ÝÇø

NEXT DB 1024 dup (0)£» Ä¿µÄÊý¾ÝÇø

3.3 ±àд10¸ö×Ö£¨16λ¶þ½øÖÆÊý£©Ö®ºÍµÄ³ÌÐò

ORG 100h LEA SI,ADD1;

LEA DI,ADD2; LEA BX,SUM; MOV CL,CONT; MOV CH,0; Ñ­»·³õʼ»¯ CLC£» ½øÎ»ÇåÁã MADD1: MOV AX,[SI]£» ¶Á¼ÓÊý1

ADC ADD ADD MOV ADD LOOP HLT£»

AX,[DI] SI,2£» DI,2£» [BX],AX£» BX,2£» MADD1£»

ÒÆ¶¯Ô´ÇøµØÖ·Ö¸Õë

ÒÆ¶¯Ä¿µÄÇøµØÖ·Ö¸Õë »Ø´æ¼ÆËã½á¹û

ÒÆ¶¯¡°ºÍ¡±´æ´¢ÇøµØÖ·Ö¸Õë Ñ­»·¿ØÖÆ ÔÝÍ£

ADD1 ADD2 SUM CONT

DB 0FEH,86H,7CH,44h,56H,1FH£¬24H£¬01H£¬02H£¬33H£»¼ÓÊý1 DB 56H,49H,4EH,0FH,9CH,22H£¬45H£¬11H£¬45H£¬21H£» ¼ÓÊý2 DB 10 DUP (0)£» ºÍ´æ´¢µ¥Ôª DB 5 £» Ñ­»·´ÎÊý

3.4 ij16λ¶þ½øÖÆÊý£¬·ÅÔÚDATAÁ¬ÐøµÄÁ½¸öµ¥ÔªÖУ¬ÊÔ±à³ÌÇóÆäƽ·½¸ùºÍÓàÊý£¬½«Æä·Ö±ð´æ·ÅÔÚANSºÍREMAINÖС£

ORG 100h MOV BL,2; ³ýÊý³õÖµ AGAIN: MOV CX,NUM; Ô¤¼Æ×î´óÑ­»·´ÎÊý MOV AL,BL; 0¡¢1µÄƽ·½¸ù³ýÍâ MUL BL; µÃµ½2µÄƽ·½ CMP AX,CX; ´óÓÚԭʼÊý¾Ýô£¿ JG EXIT; ÈôԭʼÊý¾ÝСÓÚ4תEXIT MOV AX,CX; ¶ÁÊý DIV BL; ÊÔ³ý INC BL; ³ýÊýµÝÔö JMP AGAIN; ¼ÌÐø³ý EXIT: DEC BL; È¥³ý³ýÊý×Ô¼Ó MOV ANS,BL; ´æÉÌ MOV AL,BL; »Ö¸´ÓàÊý

MUL BL; SUB CX,AX;

MOV REMAIN,CL; HLT

NUM DW 7; ANSDB ?;

REMAIN DB ?;

3.5 ÔÚDATA1Ö®ÏÂ˳Ðò´æ·Å×ÅÒÔASCIIÂë±íʾµÄǧλÊý£¬½«Æäת»»³É¶þ½øÖÆÊý¡£

MOV MOV

CL,4; ÒÆÎ»´ÎÊý CH,CL; Ñ­»·´ÎÊý SI,OFFSET ASCBIN AX,AX DX,DX AL,7FH AL,'0'

MOV CLD XOR XOR ASCB1: LODSB AND CMP

;²»´óÓÚ¡®0¡¯½áÊø×ª»»

JL ERR

CMP AL,'9' JG ASCB2 ;´óÓÚ¡®9¡¯×ªASCB2 SUB AL,30H ; Êý×ÖÐÎʽ¶þ½øÖÆÊý¼õ30H

JMP ASCB3

ASCB2: CMP AL,'A' ;´óÓÚ¡®9¡¯ÓÖСÓÚ¡®A¡¯½áÊø×ª»»

JL ERR

CMP AL,'F' JG ERR SUB AL,37H

;´óÓÚ¡®F¡¯Îª²»ºÏÀíÊý£¬½áÊø×ª»»

;×Ö·ûÐÎʽASCIIÊý¼õ37H

ASCB3: OR DL,AL ROL DX,CL DEC CH JNZ ASCB1 ROL DX,CL MOV BIN,DX£»´æ´¢×ª»»½á¹û ERR:

NOP HLT

ASCBIN DB '1','B,'4','3' BIN DW ?

3.7 ±àд³ÌÐò½«MOLTÖеÄÒ»¸ö8λÊý³ËÒÔ20£¬³Ë»ý·ÅÔÚANSÖУ¨ÓÃ3ÖÖ·½Ê½£©¡£

½â£ºµÚÒ»ÖÖ·½·¨£º³£¹æ³Ë·¨ÔËËã

ORG 100h

MOV AL,MOLT MOV BL,20 MUL BL

MOV ANS,AX

HLT MOLT DB 2 ANSDW ?

µÚ¶þÖÖ·½·¨£¬½«MOLTÁ¬¼Ó20´Î

ORG 100h

MOV CX,20 MOV BX,MOLT XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANSDW ?

µÚÈýÖÖ·½·¨£¬½«¡°20¡±Á¬¼ÓMOLT´Î

ORG 100h

MOV CX,MOLT MOV BX,20 XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANSDW ? 3.8 ÔÚDATA֮ϴæ·Å100¸öÎÞ·ûºÅµÄ8λÊý£¬ÕÒ³öÆä×î´óÕß²¢½«Æä´æ·ÅÔÚKVFFµ¥Ôª¡£

ORG 100h

XOR DL,DL LEA DI,KVFF; NEXT0: LEA SI,BUFFER; MOV CL,99;

±È½Ï´ÎÊýΪN-1´Î