MOV BL,0 PUSH CX
M2:MOV AX,WORD PTR[SI] ;字数据
CMP AX,WORD PTR[SI+2] JLE M1 ;有符号比较 XCHG AX,WORD PTR[SI+2] MOV WORD PTR[SI],AX MOV BL,1 M1:ADD SI,2
LOOP M2 CMP BL,0 JE M3 POP CX LOOP M4 M3: INT 03H CODE ENDS
END MMM
实验3 3)找出和统计其中是0~9的数字字符,并同样将所有数字依次存放在A2数据区内。
STACK SEGMENT STACK DB 50 DUP(?) STACK ENDS DATA SEGMENT SL DB 0
A1 DB 'JLK2Fjkjl4jty48' N DB $-A1
A2 DB 20 DUP(20H),0 DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA START:MOV AX,DATA
MOV DS,AX LEA SI,A1 LEA DI,A2 MOV CL,N MOV CH,0 L2:MOV AL,[SI]
CMP AL,'0'; JB L1
CMP AL,'9'; JA L1
MOV [DI],AL INC SL INC DI L1:INC SI
LOOP L2
LEA BX,A2 ;显示数字 MOV AH,6 INT 10H HLT
CODE ENDS
5
END START
实验6 1)用REP MOVSB或REP MOVSW指令改写
STACK SEGMENT PARA STACK ‘STACK’ STACK_BUF DW 100 DUP(?) TOP EQU $-STACK_BUF STACK ENDS
DATA SEGMENT
TABLE1 DB 10 DUP(?) STRING DB ‘NO ERROR!’,00H DATA ENDS CODE SEGMENT
ASSUME SS:CODE,DS:DATA ASSUME SS:STACK,ES:DATA MAIN PROC FAR SSS:PUSH DS
XOR AX,AX PUSH AX
MOV AX,DATA
MOV DS,AX ;赋予初始值 MOV AX,2000H
MOV ES,AX ;赋予初始值 MOV CX,05
MOV SI,OFFSET TABLE1 MOV DI,0 L1:CLD
REP MOVSW
LEA BX,STRING
MOV SI,OFFSET TABLE1 MOV DI,0 MOV CX,05 L3:CLD
REP CMPSW JNZ L2 JMP L4
L2:ADD BX,2 L4:MOV AH,6
INT 10H INT 03H
MAIN ENDP CODE ENDS END SSS
实验6 2)若将6264片选接到My7,则该如何修改源程序。STACK SEGMENT PARA STACK ‘STACK’ STACK_BUF DW 100 DUP(?) TOP EQU $-STACK_BUF STACK ENDS
DATA SEGMENT
TABLE1 DB 10 DUP(?) STRING DB ‘NO ERROR!’,00H DATA ENDS
6
CODE SEGMENT
ASSUME SS:CODE,DS:DATA ASSUME SS:STACK,ES:DATA MAIN PROC FAR SSS:PUSH DS
XOR AX,AX PUSH AX
MOV AX,DATA MOV DS,AX
MOV AX,3800H ;将CE接到MY7后段地址ES=3800H MOV ES,AX MOV CX,5
MOV SI,OFFSET TABLE1
MOV DI,1200H ;要求将数据写到6264偏移地址为1200H开始的地方 L1:CLD
REP MOVSW
LEA BX,STRING
MOV SI,OFFSET TABLE1 MOV DI,1200H MOV CX,05 L3:CLD
REP CMPSW JNZ L2 JMP L4
L2:ADD BX,2 L4:MOV AH,6
INT 10H INT 03H MAIN ENDP CODE ENDS END SSS
实验八 8255并行口应用二
1. 请自行组合出数码管显示H、E、L、P 的七段码数据。 STACK SEGMENT PARA STACK ‘STACK’ DB 64 DUP(?) STACK ENDS
DATA SEGMENT
DISP1 DB 1,2,3,4 DISP2 DB 10,11,12,13 MARK0 DB 0
LED DB 0
TIME DW 200H ;其值可在100H---0FFFFH设置 TABLE DB 76H,79H,38H,73H,66H,6DH,7DH ;0~6
DB 07H,7FH,6FH,77H,7CH,39H,5EH ;7~d DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN: MOV AX,DATA ;加载数据段 MOV DS,AX
MOV AL,88H ;设置8255的PA口、PC口低四位和 OUT 63H,AL ;PB口为输出,PC口高四位为输入 L0: MOV LED,0F7H ;先准惫选通第一个数码管
7
CMP MARK0,0 ;判标志位单元 JNZ L1
LEA SI,DISP1 ;为0,取DISP1首地址 JMP L2
L1: LEA SI,DISP2 ;非0,取DISP2首地址 L2: MOV BX,OFFSET TABLE ;取段码表首地址 MOV AL,[SI] ;取显示内容到AL XLAT ;查表换码 OUT 60H,AL ;送PA口输出 MOV AL,LED
OUT 62H,AL ;选通数码管,PC口低四位输出 CALL D5MS ;调用5MS延时 MOV AL,LED
TEST AL,1 ;判显示到最后一位? JZ L3 ;到了则重新开始
ROR AL,1 ;未到则右移到下一位数码管 MOV LED,AL
INC SI ;显示RAM地址+1 JMP L2 ;跳到取下一个显示内容 L3: IN AL,62H ;读PC7 AND AL,80H ;按过键否? JZ L0
NOT MARK0 ;按过键则MARK0取反 JMP L0
D5MS: MOV CX,TIME
DELAY:LOOP DELAY RET CODE ENDS END BEGIN
8
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机原理实验报告(2)在线全文阅读。
相关推荐: