当前位置:首页 > 广东海洋大学汇编语言复习题 套题+答案
MOV CL,4 SHR AH, CL ADD AH,30H
AND AL, 0FH
ADD AL,30H MOV BX,0B800H
MOV ES, BX
MOV BYTE PTR ES:[160*12+40*2] ,AH ;在屏幕中间显示
MOV BYTE PTR ES:[160*12+40*2+2] ,AL RET ;子程序结束
3、以下是采用位触发方式控制扬声器发声的子程序SOUND,请补充完整。
;----------功能:子程序SOUND控制扬声器发声
;---------入口参数:(BX)=发声频率,控制脉宽; (CX)=发声时间,控制音长。 SOUND PROC NEAR PUSH AX PUSH DX MOV DX,CX
IN AL,61H ; 从控制端口获得控制信息 AND AL, 11111100B TRIG:
XOR AL, 2 ; 按1、0交替变换1号位的值 OUT 61H, AL
MOV CX, BX DELAY:
LOOP DELAY ; 控制发声频率 DEC DX
JNZ TRIG ; 控制发声时间长度 POP DX POP AX
RET SOUND ENDP
五、程序分析题
1、已知数据段中ARRAY是字符串首地址、COUNT是字符串的长度,ARRAY和COUNT均定义为字节类型。分析下面程序段完成的功能是什么?
……
MOV AL,20H MOV CH,0 MOV CL, COUNT CLD
LEA DI, ARRAY 用空格符(20H)清除某一字符区 REP STOSB
……
2、分析下面程序段完成的功能是什么?
……
MOV CX,10
L1: MOV AH,1 INT 21H
PUSH AX LOOP L1
MOV CX,10 把输入的字符逆向输出 L2: POP DX MOV AH,2 INT 21H LOOP L2
……
3、分析下面程序段完成的功能是什么?
…… MOV CH,4
ROTATE: MOV CL, 4 ROL BX,CL MOV AL, BL
AND AL,0FH ADD AL,30H CMP AL, 3AH JL PRINTIT
ADD AL,7 PRINTIT : MOV DL, AL MOV AH,2
INT 21H DEC CH
JNZ ROTATE 二进制数(BX)到十六进制数转换并显示
……
4、分析下面程序段完成的功能是什么?
……
MOV CX,10
LEA BX,BUF ;字符串BUF中存放有10个大、小写字母 K2: MOV AL,[BX] CMP AL,?Z? JBE K1 SUB AL,20H MOV [BX],AL K1:INC BX
LOOP K2 把小写字母变为大写字母
……
5、分析下面程序段的功能
……
DATA SEGMENT
S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS ┇
LEA SI,S9 LEA DI,S9+1 MOV CX,5 LOP:
MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP ……
上述程序段运行后,S9开始的10个字节存储单元内容是什么?
01 00 03 02 05 04 07 06 09 08
六、编程题
1.请编写程序实现字符串的移动:将字符串STR1移动到STR2的位置。 DATA SEGMENT
STR1 DB ‘Please Move the string to String2.’ STR2 DB 34 dup(0)
DATA ENDS code segment
assume cs:code,ds:data
start:mov ax,data mov ds,ax mov es,ax lea si,STR1 lea di,STR2 mov cx,34 cld rep movsb mov ah, 4ch int 21h code ends
end start
2.已知GRA数组中存放着10个学生的成绩,试编程实现以下功能:统计不及格的人数存放在COUNT单元中并计算平均成绩存放在AVG单元中。 DATA SEGMENT
GRA DB 76,68,54,80,45,92,63,58,94,85 AVG DB 0 COUNT DB 0 DATA ENDS
code segment
assume cs:code,ds:data start:
main proc far push ds sub ax,ax push ax mov ax,data
共分享92篇相关文档