99. 采用8255A作為DAC0832與CPU之間的接口芯片,產(chǎn)生一鋸齒波信號(hào)(8255A的口地址為300H~303H),試寫(xiě)出其主程序。
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. 試編寫(xiě)一個(gè)匯編語(yǔ)言程序,要求對(duì)鍵盤(pán)輸入的小寫(xiě)字母用大寫(xiě)字母顯示出來(lái)。
int 21h
cmp al,'a'
jb exit
cmp al,'z'
ja exit
sub al,20h
mov dl,al
mov ah,2
int 21h
101. 編寫(xiě)計(jì)算下面函數(shù)值的程序:
設(shè)輸入數(shù)據(jù)為X、輸出數(shù)據(jù)Y,且皆為字節(jié)變量。
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. 已知某班學(xué)生的英語(yǔ)成績(jī)按學(xué)號(hào)(從1開(kāi)始)從小到大的順序排列在TAB表中,要查的學(xué)生的學(xué)號(hào)放在變量NO中,查表結(jié)果放在變量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. 用數(shù)據(jù)運(yùn)算指令,對(duì)兩個(gè)16位數(shù)做加法運(yùn)算。兩個(gè)數(shù)從地址10050H開(kāi)始連續(xù)存放,低位在小地址一端,結(jié)果放在兩個(gè)數(shù)之后。
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