四、综合设计题
95. 编写一个程序,比较两个字符串是否相同。若两个字符串相同,则显示‘MATCH!’;否则显示‘NO MATCH!’。(15分)
data segment
string1 db 'asdf' ;字符串设定不限
string2 db 'asdf' ;字符串设定不限
yes db 0DH,0AH,'MATCH!$'
NO db 0DH,0AH,'NO MATCH!$'
data ends
code segment
assume cs:code,ds:data,es:data
main proc far
mov ax,data
mov ds,ax
mov es,ax
lea si,string1
lea Di,string2
mov cx,string2-string1
repe cmpsb
jne dispno
mov ah,9
lea dx,yes
int 21h
jmp exit
dispno: mov ah,9
lea dx,NO
int 21h
exit: mov ah,4ch
int 21h
main endp
code ends
end main
96. 试编一程序,求三个带符号字数据中的最大值,并将最大值存入MAX字单元中。
设三个带符号数分别在三个字变量X、Y、Z中存储。
STAC SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
X DW 00ABH
Y DW –5
Z DW 200
MAX DW ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START PROC FAR
MOV AX,DATA
MOV DS,AX
MOV AX,X
CMP AX,Y
JG L1
MOV AX,Y
CMP AX,Z
JG EXIT
L2: MOV AX,Z
JMP EXIT
L1: CMP AX,Z
JLE L2
EXIT: MOV MAX,AX
97. 采用8255A作为DAC0832与CPU之间的接口芯片,产生一三角波信号(8255A的口地址为300H~303H),试写出其主程序。(15分)
MOV DX,303H
MOV AL,10000000H
OUT DX,AL
MOV DX,301H
MOV AL,00010000B
OUT DX,AL
MOV DX,300H
MOV AL,0H
L1: OUT DX,AL
INC AL
JNZ L1
MOV AL,0FFH
L2: DEC AL
OUT DX,AL
JNZ L2
JMP L1
98. 采用8255A作为DAC0832与CPU之间的接口芯片,产生一矩形波信号(8255A的口地址为300H~303H),试写出其主程序。
MOV DX,303H
MOV AL,10000000H
OUT DX,AL
MOV DX,301H
MOV AL,00010000B
OUT DX,AL
MOV DX,300H
L1: MOV AL,0H
OUT DX,AL
CALL DELAY ;调用延时子程序,可以多种其他实现方法
MOV AL,0FFH
OUT DX,AL
CALL DELAY ;调用延时子程序,可以多种其他实现方法
JMP L1