YESA: MOV AL,0 DONE: ?
题目答案:【20】MOV AL,'A'【21】JZ YESA【22】LOOP NEXT【23】JMP DONE
你的答案:【20】MOV AL,41H【21】JE YESA【22】LOOP NEXT【23】JMP DONE
第7题(6分) 你的得分:6
上述程序段执行后共向堆栈压入【24】个数,按压入的先后 【26】 MOV AH,0 MOV CX,10 ADDR2: 【27】 OR AL,AL 【28】 ADDRl 【29】 ADDR1: INC BX 【30】
次序该数列为【25】H(用逗号把它们隔开)。 R1 DB 246 ;0F6H ? XOR BH,BH MOV AL,R1 MOV DL,10 LOP: CMP AL,0 JBE NEXT MOV AH,0 DIV DL MOV BL,AH PUSH BX JMP LOP NEXT: ?
题目答案:【24】3【25】6,4,2
你的答案:【24】3【25】0006,0004,0002 题目分析:
R1 DB 246 ;0F6H ?
XOR BH,BH ;BH=0 MOV AL,R1 ;AL=0F6H MOV DL,10 ;DL=0AH LOP: CMP AL,0 JBE NEXT
MOV AH,0 ;AH=0 DIV
DL ;AH=06H,AL=18H,AH=04H,AL=02H,AH=02H,AL=00H, MOV BL,AH
PUSH BX ;BX=0006H, 0004H,0002H JMP LOP NEXT: ?
第8题(10分) 你的得分:10
在CHAR起始的地址中存有10个有符号字节数据,统计其中正数的个数并将正数个数放在AH寄存器中。 CHAR DB 19,-45,?,10 ;10个数据 ?
题目答案:【26】LEA BX,CHAR【27】MOV AL,[BX]【28】JS【29】INC AH【30】LOOP ADDR2
你的答案:【26】LEA BX,CHAR【27】MOV AL,[BX]【28】JS【29】INC AH【30】LOOP ADDR2 题目分析:
在CHAR起始的地址中存有10个有符号字节数据,统计其中正数的个数并将正数个数放在AH寄存器中。 CHAR DB 19,-45,?,10 ;10个数据 ?
【1】 ;设置地址指针,由倒数第二条指令可知地址指针应为BX,所以此处填写LEA BX,CHAR MOV AH,0 MOV CX,10
ADDR2: 【2】 ;取出一个数据到AL,MOV AL,[BX] OR AL,AL
【3】 ADDRl ;是负数则转移到ADDR1,所以应填写JS 【4】 ;是正数则AH加一,INC AH ADDR1: INC BX
【5】 ;控制循环,LOOP ADDR2
第9题(10分) 你的得分:10
填空下列程序,使其完成统计DATA数据段以BUF为首址的COUNT个无符号宇数据中,大于80的数据的个数,并将结果存在RESULT单元中。 DATA SEGMENT
BUF 【31】 1,2,100,?,54 COUNT EQU ($-BUF)/2 RESULT【32】 ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV CX,COUNT XOR DX,DX 【33】
L1: CMP WORD PTR [BX],80 【34】 INC DX
29
L2: 【35】 LOOP L1 MOV RESULT,DX MOV AH,4CH INT 21H CODE ENDS END START
题目答案:【31】DW【32】DW【33】LEA BX,BUF【34】JBE L2【35】ADD BX,2
你的答案:【31】DW【32】DW【33】LEA BX,BUF【34】JNA L2【35】ADD BX,2 题目分析: DATA SEGMENT
BUF 【1】 1,2,100,?,54
COUNT EQU ($-BUF)/2 ;由该计算数据个数的语句可得数据应为字,所以【1】填写DW RESULT【2】 ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV CX,COUNT XOR DX,DX
【3】 ;循环开始应设置地址指针,此处填入LEA BX,BUF
L1: CMP WORD PTR [BX],80
【4】 ;不高于则转移,JBE L2 INC DX
L2: 【5】 ;调整地址指针,ADD BX,2 LOOP L1
MOV RESULT,DX ;存放结果指令可得【2】应填写DW MOV AH,4CH INT 21H CODE ENDS END START
MOV AX,0 MOV BX,1 MOV CX,100 A: ADD AX,BX INC BX LOOP A HLT
执行后BX=【2】,AX=【3】。
【2】 A. 99 B. 100 C. 101 D. 102 【3】 A. 5000 B. 5050 C. 5100 D. 5150 题目答案:CB 你的答案:CB 题目分析:
1)在进入循环之前,有三条指令分别初始化寄存器:AX为0、BX为1、CX为100;
2)由于循环的控制部分采用的是LOOP指令,该指令有使CX减1,并判断其是否为0的功能,所以可知该循环的执行次数为100次;
3)循环体的主要功能是每次循环使AX中的内容累加BX的内容,并使BX的内容加1。
4)直到最后一次(即第100次)循环时,加到AX中的BX的内容为100,且使BX加1,即变为101后退出循环体。所以当执行完该段程序后,BX的内容为101。
5)该段程序的功能是(AX)=1+2+??+100=5050
第3题(4分) 你的得分:0
下面是一个单字节无符号二进制整数转换为BCD码的子程序。子程序入口条件是:SI指向二进制数所在单元,转换结果以压缩BCD码形式存放在SI+1和SI+2两个单元中。请选择正确的答案。 BTOBCD PROC MOV AL,0 MOV [SI+1],AL MOV [SI+2],AL
第7次作业
一、单选题
第1题(2分) 你的得分:2
语句 DA1 DB 2 DUP(4,6),5 汇编后,与该语句功能等同的语句是【1】。
A. DA1 DB 4,6,5 B. DA1 DB 2,4,6,5 C. DA1 DB 4,6,4,6,5 D. DA1 DB 4,6,5,4,6,5 题目答案:C 你的答案:C
第2题(4分) 你的得分:4 执行如下程序:
30
MOV CX,【4】 A. 2 B. 4 C. 8 D. 16
L2: MOV BL,[SI]
【5】 BL,1 A. SHR B. SHL C. SAR D. TEST MOV [SI],BL MOV DL,2 L3: INC SI MOV AL,[SI]
【6】 AL,AL A. ADD B. ADC C. SUB D. SBB DAA
MOV [SI],AL DEL DL D. JNC
SUB SI,2 LOOP L2 RET BTOBCD ENDP 题目答案:CBBB 你的答案:BAAC
第4题(2分) 你的得分:2
下列子程序利用累减来完成除法操作,请选择合适的代码使程序完善(被除数在AX中,除数在CX中,商存放在DL中)。 dee_div PROC MOV DL,0 LOP: SUB AX,CX 【8】 INC DL JMP LOP NEXT: ADD AX,CX RET dee_div ENDP
A. JMP NEXT B. JC NEXT C. JNC NEXT D. JE NEXT 题目答案:B 你的答案:B
第5题(1分) 你的得分:1
下面的子程序是将AL寄存器低4位中的十六进制数转换为ASCII码,试问:该子程序中的空缺处应填写什么指令? HTOASC PROC AND AL,0FH ADD AL,30H CMP AL,39H JBE DONE
【9】 A. SUB AL,0AH B. ADD AL,0AH DONE: RET C. SUB AL,07H D. ADD AL,07H HTOASC ENDP 题目答案:D 你的答案:D 题目分析:
当AL寄存器低4位对应的十六进制数小于0AH(AL小于3AH)时,程序中的JBE判断为真,直接输出结果;如果大于9H时,需要加上07H才能转化成对应的ASCII码。
31
第6题(6分) 你的得分:6
下面的程序是将10个8位的无符号数按递减次序排序。请选DATA SEGMENT
ARRAY DB 05H,78H,0FFH,7BH,00H,8CH,20H,0A0H,0F0H,60H DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
AB1: MOV SI,OFFSET ARRAY MOV BL,0 MOV CX,10
【10】 A. INC BL B. INC SI C. DEC CX D. INC CX
AGAIN: MOV AL,[SI] INC SI CMP AL,[SI]
【11】 CD1 A. JG B. JC C. JE D. JA
MOV AH,[SI] MOV [SI],AL DEC SI MOV [SI],AH INC SI MOV BL,1 CD1: LOOP AGAIN DEC BL
【12】 AB1 A. JC B. JNE C. JZ D. JP
MOV AH,4CH INT 21H CODE ENDS END START 题目答案:CDC 你的答案:CDC 题目分析:
【1】数据总数为10,则循环次数应为9,所以选择C。 【2】根据题意可知AL小于[SI]时应转移,可用的转移指令D。 【3】此处判断在结束一次大循环的情况下,是否发生了两数交换的情况:是则继续循环,否则结束循环。因此选择C。
第7题(2分) 你的得分:2 MOV AX,1234H DON: CMP AX,0 JZ NEXT
【7】 L3 A. JZ B. JNZ C. JC 择正确的答案将程序填充完整。
SHL AX,1 JNC DON INC BL JMP DON NEXT:HLT
请问:(1)该程序的功能是什么?(2)程序执行后(BL)为多少?【13】。
A. (1)统计AX寄存器中二进制为“0”的个数 (2)(BL)=05H B. (1)统计AX寄存器中二进制为“1”的个数 (2)(BL)=05H C. (1)统计AX寄存器中二进制为“0”的个数 (2)(BL)=06H D. (1)统计AX寄存器中二进制为“1”的个数 (2)(BL)=06H 题目答案:B 你的答案:B 题目分析:
1234H=0001 0010 0011 0100B
第8题(4分) 你的得分:4
下面程序段实现的功能是:从地址source单元开始的内存中有一个长度为100的字符串,只要该字符串中存在数字字符,则将DL的D0置1,否则将D0位置0。试选择。 BEGIN: M0V CX,100 MOV SI,0
REPEAT: M0V AL,SOURCE[SI] CMP AL,30H JB GOON
CMP AL,【14】 A. 35 B. 39 C. 35H D. 39H JA GOON OR DL,1 JMP EXIT GOON: INC SI LOOP REPEAT
AND DL,【15】 A. 0DFH B. 7FH C. 0FEH D. 0FFH EXIT: 题目答案:DC 你的答案:DC 题目分析:
本题要求测试某个字符串中是否存在数字,如有则将DL的第五位置l,否则置0。程序具体实现是:将字符串中的每个数据与30H~39H比较,看是否在其间,若在则D0置l,否则转GOON执行。
二、是非题
第1题(1分) 你的得分:1 【1】X: JNZ X+500 题目答案:F 你的答案:F
32
题目分析:
转移地址超出范围。
三、填空题
第1题(1分) 你的得分:1 语句 1 SHL 3 的计算结果为【1】H。 题目答案:【1】8 你的答案:【1】08
第2题(6分) 你的得分:0 数据段如下: DATA SEGMENT DA3 EQU 1234H ORG 0020H DA4 EQU DA3-2 DA1 DW 12H,23H DA5 DB 31H,32H DA2 DB 11H,21H DATA ENDS 请回答:
1. 该数据段已占用的存储字节数是【2】D个。 2. 符号名DA4的值为【3】。 3. 符号名DA5的值为【4】H。 题目答案:【2】8【3】1232H【4】0024 你的答案:【2】12【3】1231H【4】0027 题目分析: DATA SEGMENT
DA3 EQU 1234H ;DA3=1234H ORG 0020H
DA4 EQU DA3-2 ;DA4=1232H DA1 DW 12H,23H ;DA1=0020H DA5 DB 31H,32H ;DA5=0024H DA2 DB 11H,21H ;DA2=0026H DATA ENDS
第3题(1分) 你的得分:0
【5】用来说明一段程序或一条减几条指令的功能,它是可有可无的。
题目答案:【5】注释 你的答案:【5】;
第4题(2分) 你的得分:2
VAR DD 40 DUP(?)语句实现预留【6】个字节单元。 题目答案:【6】160 你的答案:【6】160
第5题(4分) 你的得分:0
已知:AX=4567H,BX=9ABCH,执行了下面的程序段后,AX=
相关推荐: