80x86΢»úÔ­ÀíÓë½Ó¿Ú¼¼ÊõʵÑéÖ¸µ¼Êé ÏÂÔØ±¾ÎÄ

ÔËÐгÌÐò£¬µ±Óöµ½¶Ïµãʱ³ÌÐò»áÍ£ÏÂÀ´£¬È»ºó¹Û²ìÊý¾Ý¡£¿ÉÒÔʹÓÃE0000:3000 À´¸Ä±ä¸ÃµØÖ·µ¥ÔªµÄÊý¾Ý£¬Èçͼ1-1-10 Ëùʾ£¬ÊäÈë11 ºó£¬°´¡°¿Õ¸ñ¡±¼ü£¬¿ÉÒÔ½Ó×ÅÊäÈëµÚ¶þ¸öÊý£¬Èç22£¬½áÊøÊäÈë°´¡°»Ø³µ¡±¼ü¡£

ͼ1-1-9 ¶ÏµãÉèÖÃÏÔʾ ͼ1-1-10 ÐÞ¸ÄÄÚ´æµ¥ÔªÊý¾ÝÏÔʾ½çÃæ

ʵÑéÀý³ÌÎļþÃûΪWmd861.asm¡£

1.1.5 ²Ù×÷Á·Ï°

±àд³ÌÐò£¬½«ÄÚ´æ3500H µ¥Ôª¿ªÊ¼µÄ8 ¸öÊý¾Ý¸´ÖƵ½3600H µ¥Ôª¿ªÊ¼µÄÊý¾ÝÇøÖС£Í¨¹ýµ÷ÊÔÑéÖ¤³ÌÐò¹¦ÄÜ£¬Ê¹ÓÃEÃüÁîÐÞ¸Ä3500Hµ¥Ôª¿ªÊ¼µÄÊý¾Ý£¬ÔËÐгÌÐòºóʹÓÃDÃüÁî²é¿´3600Hµ¥Ôª¿ªÊ¼µÄÊý¾Ý¡£

1.2 ÊýÖÆ×ª»»ÊµÑé

1.2.1 ʵÑéÄ¿µÄ

1. ÕÆÎÕ²»Í¬½øÖÆÊý¼°±àÂëÏ໥ת»»µÄ³ÌÐòÉè¼Æ·½·¨£¬¼ÓÉî¶ÔÊýÖÆ×ª»»µÄÀí½â£» 2. ÊìϤ³ÌÐòµ÷ÊԵķ½·¨¡£

1.2.2 ʵÑéÉ豸

PC»úһ̨£¬TD-PITE ʵÑé×°ÖÃÒ»Ìס£

1.2.3 ʵÑéÄÚÈݼ°²½Öè

¼ÆËã»úÊäÈëÉ豸ÊäÈëµÄÐÅÏ¢Ò»°ãÊÇÓÉASCII Âë»òBCD Âë±íʾµÄÊý¾Ý»ò×Ö·û£¬CPU Ò»°ã¾ùÓöþ½øÖÆÊý½øÐмÆËã»òÆäËüÐÅÏ¢´¦Àí£¬´¦Àí½á¹ûµÄÊä³öÓÖ±ØÐëÒÀÕÕÍâÉèµÄÒªÇó±äΪASCIIÂë¡¢BCD Âë»òÆß¶ÎÏÔʾÂëµÈ¡£Òò´Ë£¬ÔÚÓ¦ÓÃÈí¼þÖУ¬¸÷ÀàÊýÖÆµÄת»»ÊDZز»¿ÉÉٵġ£

¼ÆËã»úÓëÍâÉè¼äµÄÊýÖÆ×ª»»¹ØÏµÈçͼ1-2-1Ëùʾ£¬ÊýÖÆ¶ÔÓ¦¹ØÏµÈç±í1-2-1Ëùʾ

ͼ1-2-1 ÊýÖÆ×ª»»¹ØÏµ

±í1-2-1 ÊýÖÆ¶ÔÓ¦¹ØÏµ±í

Ðø±í1-2-1

1. ½«ASCIIÂë±íʾµÄÊ®½øÖÆÊýת»»Îª¶þ½øÖÆÊý Ê®½øÖƱíʾΪ£º

£¨£©

Di´ú±íÊ®½øÖÆÊý0£¬1£¬2£¬?£¬9£» ÉÏʽת»»Îª£º

£¨2£©

ÓÉʽ£¨2£©¿É¹éÄÉÊ®½øÖÆÊýת»»Îª¶þ½øÖÆÊýµÄ·½·¨£º´ÓÊ®½øÖÆÊýµÄ×î¸ßλDn ¿ªÊ¼×÷³Ë10¼Ó´ÎλµÄ²Ù×÷£¬ÒÀ´ÎÀàÍÆ£¬Ôò¿ÉÇó³ö¶þ½øÖÆÊýµÄ½á¹û¡£³ÌÐòÁ÷³ÌͼÈçͼ1-2-2 Ëùʾ¡£ÊµÑé²Î¿¼³ÌÐòÈçÏ¡£

ʵÑé³ÌÐòÇåµ¥£¨Àý³ÌÎļþÃû£ºA2-1.ASM£©

SSTACK SEGMENT STACK

DW 64 DUP(?)

SSTACK ENDS DATA SEGMENT

SADD DB 30H,30H,32H,35H,36H ;Ê®½øÖÆÊý:00256 DATA ENDS CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA

MOV DS, AX

MOV AX, OFFSET SADD MOV SI, AX MOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, [SI] SUB AL, 30H

A1: IMUL BX

MOV DX, [SI+01] AND DX, 00FFH ADC AX, DX SUB AL, 30H INC SI LOOP A1

A2: JMP A2 CODE ENDS

END START

ͼ1-2-2 ת»»³ÌÐòÁ÷³Ìͼ

ʵÑé²½Öè

£¨1£©»æÖƳÌÐòÁ÷³Ìͼ£¬±àдʵÑé³ÌÐò£¬¾­±àÒë¡¢Á´½ÓÎÞÎóºó×°Èëϵͳ£»

£¨2£©´ýת»»Êý¾Ý´æ·ÅÓÚÊý¾Ý¶Î£¬¸ù¾Ý×Ô¼ºÒªÇóÊäÈ룬ĬÈÏΪ30H£¬30H£¬32H£¬35H£¬36H£» £¨3£©ÔËÐгÌÐò£¬È»ºóÍ£Ö¹³ÌÐò£»

£¨4£©²é¿´AX ¼Ä´æÆ÷£¬¼´Îª×ª»»½á¹û£¬Ó¦Îª£º0100 £» £¨5£©·´¸´ÊÔ¼¸×éÊý¾Ý£¬ÑéÖ¤³ÌÐòµÄÕýÈ·ÐÔ¡£

2. ½«Ê®½øÖÆÊýµÄASCIIÂëת»»ÎªBCD Âë

´Ó¼üÅÌÊäÈëÎåλʮ½øÖÆÊýµÄASCIIÂ룬´æ·ÅÓÚ3500HÆðʼµÄÄÚ´æµ¥ÔªÖУ¬½«Æäת»»ÎªBCD Âëºó£¬ÔÙ°´Î»·Ö±ð´æÈë350AH ÆðʼµÄÄÚ´æµ¥ÔªÄÚ¡£ÈôÊäÈëµÄ²»ÊÇÊ®½øÖƵÄASCIIÂ룬Ôò¶ÔÓ¦´æ·Å½á¹ûµÄµ¥ÔªÄÚÈÝΪ¡°FF¡±¡£Óɱí1-2-1¿ÉÖª£¬Ò»×Ö½ÚASCIIÂëÈ¡ÆäµÍËÄλ¼´±äΪBCD Âë¡£ ʵÑé³ÌÐòÇåµ¥£¨Àý³ÌÎļþÃû£ºA2-2.ASM£©

SSTACK SEGMENT STACK

DW 64 DUP(?)

SSTACK ENDS CODE SEGMENT

ASSUME CS:CODE

START: MOV CX, 0005H ;ת»»Î»Êý

MOV DI, 3500H ;ASCIIÂëÊ×µØÖ·

A1: MOV BL, 0FFH ;½«´íÎó±êÖ¾´æÈëBL

MOV AL, [DI] CMP AL, 3AH