99. 采用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
MOV AL,0H
L1: OUT DX,AL
INC AL
JMP L1
100. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
int 21h
cmp al,'a'
jb exit
cmp al,'z'
ja exit
sub al,20h
mov dl,al
mov ah,2
int 21h
101. 编写计算下面函数值的程序:
设输入数据为X、输出数据Y,且皆为字节变量。
DATA SEGMENT
X DB ?
Y DB ?
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START PROC FAR
MOV AX,DATA
MOV DS,AX
CMP X,0
JGE A1
MOV Y,-1
JMP EXIT
A1: JG A2
MOV Y,0
JMP EXIT
A2: MOV Y,1
EXIT: MOV AH,4CH
INT 21H
START ENDP
CODE ENDS
END START
102. 已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放在变量ENGLISH中。
STACK SEGMENT STACK
DB 200 DUP(0)STACK ENDS
DATA SEGMENT
TAB DB 80,85,86,71,79,96
DB 83,56,32,66,78。84
NO DB 10
ENGLIST DB?DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
BEGIN PROC FAR
MOV AX,DATA
MOV DS ,AX
LEA BX,TAB
MOV AL,NO
DEC AL
XLAT TAB
MOV ENGLISH,AL
MOV AH,4CH
INT 21H
BEGIN ENDP
CODE ENDS
END BEGIN
103. 用数据运算指令,对两个16位数做加法运算。两个数从地址10050H开始连续存放,低位在小地址一端,结果放在两个数之后。
MOV AX,1000H
MOV DS,AX
MOV SI,50H
MOV DI,52H
MOV BX,54H
CLC
XOR AX,AX
MOV AX,[SI]
ADC AX,[DI]
MOV [BX],AX