SCORE DB 30 DUP(?) ORG 2000H SEQU DB 30 DUP(?) DATA ENDS
STACK SEGMENT
STA DW 32 DUP(?) TOP DW ? STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX
MOV SP,TOP MOV AH,09H
MOV DX,OFFSET MESS1 INT 21H MOV SI,OFFSET SCORE MOV CX,STUNUM UUU: CALL GETNUM MOV [SI],DL INC SI LOOP UUU
MOV CX,STUNUM MOV DI,OFFSET SEQU VVV: CALL SCAN MOV AL,STUNUM SUB AL,CL
INC AL MOV BX,DX
MOV [DI+BX],AL LOOP VVV
MOV CX,STUNUM MOV SI,OFFSET SEQU WWW: MOV AL,[SI] CALL DISPI PUSH DX PUSH AX
MOV AH,02 MOV DL,20H INT 21H POP AX POP DX INC SI
;³õʼ»¯
;ÏÔʾÌáʾÐÅÏ¢ ;³É¼¨±íÊ×Ö· ;ѧÉúÊýËÍCX
;¶ÁÈ¡¼üÈëÊýÖµËÍDX ;´æÈë³É¼¨±í»º³åÇø ;Ö¸ÏòÏÂÒ»µ¥Ôª ;ѧÉúÊý ;Ãû´Î±íÊ×Ö· ;ɨÃè×Ó³ÌÐò ;ѧÉúÊý ;¼ÆËãÃû´Î
;¼ÇDXѧºÅ¶ÔÓ¦Ãû´Î;ѧÉúÊý ;Ãû´Î±íÊ×Ö·
LOOP WWW ;ÏÔʾÅŶ¨µÄѧÉúÃû´Î MOV AX,4C00H INT 21H
SCAN PROC NEAR ;×Ó³ÌÐò,ÿɨÃèÒ»±é³É¼¨±í»º³åÇø, ÕÒ³öÆä PUSH CX ;Öгɼ¨×î¸ßÕß(ÓÉDXÖ¸Õëָʾ¶ÔӦѧÉú),Ö® MOV CX,STUNUM ;ºó½«¸Ã³É¼¨Çå³ýÒÔ±ãÏÂÒ»´ÎɨÃèѧÉúÊý MOV AL,00H MOV BX,OFFSET SCORE MOV SI,BX CCC: CMP AL,[SI] JAE JJJ MOV AL,[SI] MOV DX,SI SUB DX,BX JJJ: INC SI LOOP CCC ADD BX,DX
MOV BYTE PTR [BX],00H POP CX RET SCAN ENDP
DISPI PROC NEAR PUSH CX MOV BL,AL MOV DL,BL MOV CL,04 ROL DL,CL AND DL,0FH CALL DISPL MOV DL,BL AND DL,0FH CALL DISPL POP CX RET DISPI ENDP
DISPL PROC NEAR ADD DL,30H CMP DL,3AH JB DDD ADD DL,27H DDD: MOV AH,02H INT 21H RET
DISPL ENDP
;×îµÍ³É¼¨ ;Ö¸Ïò³É¼¨±íÊ×Ö· ;ALÖеijɼ¨²»µÍÓڳɼ¨±íÖ¸ ;ÕëSIËùÖ¸µ¥ÔªµÄ³É¼¨ÔòתJJ ;AL´æ·Å½Ï¸ßµÄ³É¼¨ ;DXΪ¶ÔӦѧºÅ ;Ö¸ÏòÏÂÒ»µ¥Ôª ;±¾´ÎɨÃè³É¼¨×î¸ßÕßÇå0
GETNUM PROC NEAR PUSH CX XOR DX,DX GGG: MOV AH,01H INT 21H
CMP AL,0DH JZ PPP
SUB AL,30H JB KKK CMP AL,0AH JB GETS CMP AL,11H JB KKK SUB AL,07H CMP AL,0FH JBE GETS CMP AL,2AH JB KKK CMP AL,2FH JA KKK SUB AL,20H GETS: MOV CL,04 SHL DX,CL XOR AH,AH ADD DX,AX JMP GGG
KKK: MOV AH,09H
MOV DX,OFFSET ERROR INT 21H PPP: PUSH DX CRLF
POP DX POP CX RET
GETNUM ENDP CODE ENDS END START
µÚ5Õ ´æ´¢Æ÷
5.1 ֪ʶҪµã
1.°ëµ¼Ìå´æ´¢Æ÷´æÖüÆ÷µÄ·ÖÀ࣬
°ëµ¼Ìå´æ´¢Æ÷´æÖüÆ÷µÄ·ÖÀà¼´Ëæ»ú¶Áд´æ´¢Æ÷£¨RAM£©ºÍÖ»¶Á´æ´¢Æ÷£¨ROM£©¡£¶ÔÓÚËæ»ú¶Áд´æ´¢Æ÷£¬ÓпɷÖΪ¾²Ì¬Ëæ»ú¶Áд´æ´¢Æ÷ºÍ¶¯Ì¬Ëæ»ú¶Áд´æ´¢Æ÷£¬¾²Ì¬Ëæ»ú¶Áд´æ´¢Æ÷µÄ´æ´¢ÔÀíÊÇÀûÓÃË«ÎÈ̬´¥·¢Æ÷´æ´¢ÐÅÏ¢£¬¶¯Ì¬Ëæ»ú¶Áд´æ´¢Æ÷µÄ´æ´¢ÔÀíÊÇÀûÓõçÈÝÀ´´æ´¢ÐÅÏ¢¡£¶ÔÓÚ¶¯Ì¬Ëæ»ú¶Áд´æ´¢Æ÷£¬ÓÉÓÚµçÈÝй©µçºÉ£¬´æ´¢µ¥ÔªµÄµçºÉÐèÒª¶¨Ê±²¹³ä£¬¹Ê¶¯Ì¬Ëæ»ú¶Áд´æ´¢Æ÷ÐèҪˢС£
2.³£ÓõĴ洢оƬ£¬¾²Ì¬µÄRAMÖ÷ÒªÒÔ6264ΪÀý£¬¶¯Ì¬µÄRAMÖ÷ÒªÒÔ2164ΪÀý¡£ 6264оƬÊÇÒ»¸öÈÝÁ¿Îª8K¡Á8bitµÄMOSÐÍSRAMоƬ£¬º¬ÓÐ8K¸ö´æ´¢µ¥Ôª£¬Ã¿¸ö´æ´¢µ¥Ôª´æ´¢8λ¶þ½øÖÆÐÅÏ¢£¬¹²ÓÐ28ÌõÒýÏߣ¬°üÀ¨13¸ùµØÖ·Ïß¡¢8¸ùÊý¾ÝÏߺÍ4¸ù¿ØÖÆÐźÅÏß¡£
2164º¬ÓÐ64K¸ö´æ´¢µ¥Ôª£¬Ã¿¸öµ¥Ôª´æ´¢1λÐÅÏ¢¡£ 2. µØÖ·ÒëÂë
µØÖ·ÒëÂëµÄ·½·¨£ºÈ«µØÖ·ÒëÂëºÍ²¿·ÖµØÖ·ÒëÂë¡£
È«µØÖ·ÒëÂë·½·¨È«µØÖ·ÒëÂë¾ÍÊǰÑϵͳÖÐÈ«²¿µØÖ·ÏßÓëоƬÁ¬½Ó£¬ÆäÖиßλµØÖ·Ïß¾¹ýÒëÂëµç·ÒëÂëºó×÷ΪоƬµÄƬѡÐźţ»µÍλµØÖ·ÏßÓëϵͳÖеÄÏàÓ¦µØÖ·ÏßÒ»¶ÔÒ»Á¬½Ó¡£È«µØÖ·ÒëÂ뷽ʽÏ£¬Ã¿¸ö´æ´¢µ¥Ôª¶¼ÓÐΨһµÄµØÖ·¡£
²¿·ÖµØÖ·ÒëÂë¾ÍÊÇֻʹÓÃϵͳµØÖ·×ÜÏßÖеÄÒ»²¿·ÖÓëоƬÖеĵØÖ·ÏßÏàÁ¬¡£¸ßλµØÖ·ÏßֻʹÓÃÁËÒ»²¿·Ö¾¹ýÒëÂëµç·ÒëÂëºó×÷ΪоƬµÄƬѡÐźţ»µÍλµØÖ·ÏßÓëϵͳÖеÄÏàÓ¦µØÖ·ÏßÒ»¶ÔÒ»Á¬½Ó¡£²ÉÓò¿·ÖµØÖ·ÒëÂëʱ£¬´æ´¢µ¥ÔªµÄµØÖ·²»Î¨Ò»£¬´æÔÚµØÖ·ÖصþÏÖÏó¡£
3. ½éÉÜ´æ´¢Æ÷µÄÀ©Õ¹
Èκδ洢оƬµÄ´æ´¢ÈÝÁ¿¶¼ÊÇÓÐÏ޵ġ£Òª¹¹³ÉÒ»¶¨ÈÝÁ¿µÄÄڴ棬ÍùÍùµ¥¸öоƬ²»ÄÜÂú×ãÒªÇ󣬿ÉÄÜÊÇ´æ´¢µ¥Ôª¸öÊý²»¹»£¬Ò²¿ÉÄÜ×Ö³¤²»·ûºÏÒªÇ󣬸ü¿ÉÄÜ×Ö³¤¡¢´æ´¢µ¥ÔªÊý¶¼²»ÄÜÂú×ãÒªÇó¡£Õâʱ¾ÍÐèÒª¶à¸ö´æ´¢Ð¾Æ¬×éºÏ£¬ÕâÖÖ×éºÏ³ÆÎª´æ´¢Æ÷µÄÀ©Õ¹¡£´æ´¢Æ÷À©Õ¹°üÀ¨Î»À©Õ¹¡¢×ÖÀ©Õ¹ºÍ×ÖλÀ©Õ¹ÈýÖÖ·½Ê½¡£
µ±´æ´¢Ð¾Æ¬Ã¿¸öµ¥ÔªµÄ×Ö³¤Ð¡ÓÚËùÐèÄÚ´æµ¥Ôª×Ö³¤Ê±£¬ÐèÒªÓöà¸öоƬ¹¹³ÉÂú×ã×Ö³¤ÒªÇóµÄ´æ´¢Ä£¿é£¬Õâ¾ÍÊÇλÀ©Õ¹¡£
µ±´æ´¢Ð¾Æ¬µÄÈÝÁ¿Ð¡ÓÚËùÐèÄÚ´æÈÝÁ¿Ê±£¬ÐèÒªÓöà¸öоƬ¹¹³ÉÂú×ãÈÝÁ¿ÒªÇóµÄ´æ´¢Æ÷£¬Õâ¾ÍÊÇ×ÖÀ©Õ¹¡£
5. Ö»¶Á´æ´¢Æ÷
Ö»¶Á´æ´¢Æ÷ROMÒ»°ãÓÃÓÚ´æ·Å¹Ì¶¨µÄ³ÌÐò£¬ÈçBIOS¡£³£ÓõÄÖ»¶Á´æ´¢Æ÷ÀàÐÍÓУºÑÚĤʽROM¡¢¿É±à³ÌROM£¨PROM£©¡¢¿É²Á³ý¿É±à³ÌROM£¨EPROM£©¡¢µç¿É²Á³ý¿É±à³ÌROM £¨E2PROM£©ºÍÉÁ´æ£¨Flash Memry£©¡£
6. ¸ßËÙ»º³å´æ´¢Æ÷
ΪÁË»º½âCPUºÍÄÚ´æÖ®¼ä´æÈ¡ËٶȵÄì¶Ü£¬ÔÚCPUºÍÄÚ´æÖ®¼ä²åÈëһС¿éSRAM£¬³ÆÎªCache£¬½«µ±Ç°ÕýÔÚÖ´ÐеÄÖ¸Áî¼°Ïà¹ØÁªµÄºó¼ÌÖ¸Á´ÓÄÚ´æ¶Áµ½Cache£¬Ê¹CPUÖ´ÐÐÏÂÒ»ÌõÖ¸Áîʱ£¬´ÓCacheÖжÁÈ¡¡£CacheµÄ´æÔÚʹCPU¼È¿ÉÒÔÒԽϿìµÄËٶȶÁȡָÁîºÍÊý¾Ý£¬ÓÖ²»ÖÁÓÚʹ΢»úµÄ¼Û¸ñ´ó·ùÌá¸ß¡£
¸ßËÙ»º³å´æ´¢Æ÷µÄ¹¤×÷ÔÀíÊÇ»ùÓÚ³ÌÐòºÍÊý¾Ý·ÃÎʵľֲ¿ÐÔ¡£