±¾ÕÂ×÷Òµ²Î¿¼ÊéÄ¿£º
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´Î