MOV BL,N RCL BL,1 ADD BH,BL XOR BH,0FFH HLT
寄存器BH的值是 ,寄存器BL的值是 。 14. 分析下列程序段 MOV AL,N XOR AH,AH MOV CL,4 DIV CL
当N=3CH时,程序执行完后AX= 15.程序段如下: CLC
MOV AL,6 MOV BL,9 ADD AL,BL MOV BL,AL DAA
执行上面程序段后,AL= ,AF= ,BL= 16.执行下列指令后 TABLE DB 19H,55H,9CH LEA BX,TABLE MOV AL,[BX] XOR AL,89H MOV [BX],AL 寄存器AL的值是
17.分析下列程序段,说明该程序段执行何种功能。 MOV CX,10 MOV DL,30H
NEXT1:MOV AH,2 INT 21H INC DL LOOP NEXT1
18.执行下列指令后 MOV AX,1245H MOV BX,5689H ADD AL,BL MOV CL,AL MOV AL,AH ADC AL,BH DAA
寄存器AL的值是 ,寄存器CL的值是 19.分析下列程序段: MOV AL,N XOR AH,AH MOV BL,16 DIV BL
当N=57H时,程序执行完后AX=?
20.在下面程序的括号中分别填入如下指令: ① LOOP XH ② LOOPNE XH ③ LOOPE XH
问在这三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器中的内容分别是什么? START:MOV AX,04 MOV BX,02 MOV CX,03
9
MOV DX,05 XH:INC AX ADD BX,AX SHR DX,1 ( ) HLT
21.阅读程序,请说出该程序的功能是什么? MOV AX,DATA MOV DS,AX LEA SI,BUFFER XOR BL,BL MOV CX,100
AGAIN: MOV AL,[SI] TEST AL,1 JNZ NEXT INC BL
NEXT: INC SI LOOP AGAIN HLT
22.从键盘上接收一字符,若是“Y”转YES,是“N”转NO,否则继续等待,到输入“Y”或“N”为止。 程序段如下: MOV AL,N AND AL,0FH ADD AL,90H DAA
ADC AL,40H MOV RUT,AL HLT
问: ①若N=5,下列程序执行后AL=? ②该程序段的功能是什么? 23.执行下列程序段后: DATA SEGMENT DT1 LABLE WORD DT2 DB 12H,34H DATA ENDS ?????? MOV AL,DT2 MOV DX, DT1
寄存器AL的值是 ① ,寄存器DX的值是 ② 。 24.读下列程序,请说出该程序的功能是什么? DATA SEGMENT SUM DW 0 DATA ENDS STACK SEGMENT DB 200 DUP(?) STACK ENDS CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX MOV CX,50 MOV AX,0 MOV BX,1
NEXT: ADD AX,BX INC BX INC BX
10
DEC CX JNE NEXT MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS END START
25.设伪指令定义如下,请画出内存分配示意图。 BUF DB ? DW ‘AB’ DW ‘C’ DW 1234H DB ‘EF’
26.执行下列程序段后: DATA SEGMENT DT1 DW 8A9BH DT2 DB 7CH, 6DH DATA ENDS ┇ ┇
MOV AX, DT1
MOV BX, OFFSET DT1 MOV SI, OFFSET DT2
寄存器BX的值是 ① ,寄存器SI的值是 ② 。 27.执行下列指令后: TABLE DB 10H,33H,41H ┉┉
MOV BX,OFFSET TABLE MOV AL,[BX] XOR AL,80H MOV [BX],AL
寄存器AL的值是多少? 28.执行下列程序段后: DATA SEGMENT N1 DW 3355H N2 DB 23H, 89H DATA ENDS ┇
MOV AX, N1
MOV DI, OFFSET N1 MOV BP, OFFSET N2
寄存器DI的值是多少?寄存器BP的值是多少? 29.执行下列指令后: DAT DB 10H,33H,41H ┉┉
LEA BX,DAT MOV AX,SEG DAT MOV ES,AX
MOV AL,ES:[BX] XOR AL,80H MOV ES:[BX],AL
寄存器AL的值是多少? 30.执行下列程序段后: BUF DB 01H ??
11
XOR AL,AL MOV AL,BUF MOV BL,AL SAL AL,1 ADD AL,BL XOR AL,0FFH HLT
寄存器AL的值是多少?寄存器BL的值是多少?
五.程序填空
1.下列程序是在键盘上输入120个字符,然后将输入反序后显示在屏幕上。请将程序填写完整。 STACK1 SEGMENT
STP DW 120 DUP ( ? ) STACK1 ENDS CODE SEGMENT
ASSUME CS:CODE,SS:STACK1 START: MOV AX, STACK1 MOV SS, AX
MOV SP, SIZE STP MOV CX,120 LOOP1: MOV AH,01H INT 21H PUSH AX ( )
MOV DL,0AH MOV AH, 02H INT 21H
MOV DL, 0DH INT 21H
MOV CX, 120 LOOP2: ( ) MOV AH,02H INT 21H LOOP LOOP2 MOV AH,4CH INT 21H CODE ENDS END START 六、编写程序
1.在STR到STR+49单元中存放着一个字符串,试编写一个程序,测试字符串中是否存在数字,如有,则把DL的第五位置1,否则将该位置0。
2.试编程实现,从键盘接收N个(N≤60)8位二进制数,统计其中奇数的个数,并将结果显示在屏幕上。 3.已知有100字节的数据块存放在以5C10H: 2000H开始的存储区内,要求编写一个完整程序将数据移动到以5C10H:2008H开始的存储区内。
4.数组A包含100个互不相等的整数,数组B包含150个互不相等的整数,试编程实现将数组A和数组B都有的整数存放在数组C中。
5.在以BASE起始的表中存有一组字符,它以‘回车’(0DH)结束。请编写程序:实现从该表中查找关键字KEY(设关键字KEY在AL中),并将找到的第一个关键字偏离表首的位置存放在寄存器DX中,若无此关键字,DX返回值为-1。
6.编写一个中断程序,实现人机对话。要求执行程序时,显示‘WHAT IS YOUR NAME?’,在回车换行后,接收键盘输入信息,并显示。
7.编写程序找出BUF数据区中50个带符号数的最大值和最小值,并分别存入MAX和MIN单元。
8.试编程实现从键盘接收N个(N≤50)8位二进制数,统计偶数的个数及偶数之和,并将统计的个数以十进制方式显示在屏幕上。
9.以STRING起始的字符串的最大长度为80个字符,字符串的结束用字符$表示。编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格字符串中的位置(00H~4FH)存入POST单元;若无空格则将-1
12
相关推荐: