-/
1.设置CX=0,则LOOP指令将执行多少次?例如: mov cx, 0 delay: loop delay
A.0 B.1
C.65535 D.65536
正确答案是: D
2.REPZ CMPSB这条指令结束的时候,如果比较的串相等,则________。
A.SF=1 B.ZF=1 C.ZF=0 D.CX不为0
正确答案是: B
3.在取指令CMP BX, 100H的源操作数的时候使用的逻辑地址最可能的是________。
A.DS:100H B.CS:IP C.ES:100H D.SS:IP
正确答案是: B
4. 在一个字符串中查找一个字符,使用REPNZ SCASB指令,执行完后,如果______表示没有找到。
A.ZF=1 B.CX=0 且ZF=0 C.CX=0,且ZF=1 D.OF=1
正确答案是: B
5. 指令RET 8是FAR过程的返回语句,执行之后,SP的值会______。
A.+8 B.-8 C.+10 D.+12
正确答案是: D
6. REPZ重复前缀重复的条件是________
A.CX<>0 且ZF=1 B.CX=0,或ZF=0 C.CX=0,且ZF=0 D.CX<>0 或ZF=1
-/
正确答案是: A
12. 下面的指令,对CF会产生影响的指令是_____。
A.INC AX B.DEC AX C.NEG AX D.NOT AX
正确答案是: C
15. JMP WORD PTR[SI]这条指令的最大跳转范围是________。
A.-32768字节至+32767字节 B.-128字节至+127字节 C.-32768字节至+32768字节 D.-512KB至+512KB
正确答案是: A
19. 16位汇编的寻址方式中,能作为基址变址寻址方式的寄存器是_____。
A.SI, DI, SS, DS B.AX,BX,CX,DX C.BX, SP,SI,DI D.BX,BP,SI,DI
正确答案是: D
23. 如果(AL)=83H,则执行CBW之后,AX的值为_______。
A.0FF83H B.8883FH C.8003FH D.0083FH
正确答案是: A
25. 以下的公式中,_________的结果是下一条指令的物理地址。
A.CS*16+IP B.CS*16+IP+本条指令的字节数 C.SS*16+IP D.CS*10+IP
正确答案是: A
-/
1. 在内存中从Table开始的10个单元中连续存放0到9的平方值,任给一个0到9的数X,该数存放在内存单元XX中,查表求X的平方值,并将结果存于内存YY单元中。编写程序,并在DEBUG中进行调试和验证结果。(提示:考虑平方表的每一项需要什么数据类型才合适, XLAT指令是否合适?应该如何查表?) .8086 .MODEL SMALL .DATA ORG 10H
TABLE BYTE 0,1,4,9,16,25,36,49,64,81 X BYTE 7 Y BYTE ? .CODE
START: MOV AX , @DATA MOV DS , AX
MOV BX , OFFSET TABLE MOV AL , X XLAT MOV Y , AL END START
2. 假设CX:BX中放了4位非压缩的BCD码表示的十进制数4386,请编写完整程序将这个数转成2进制数放到DI寄存器中,并用DEBUG调试和验证之 .8086 .MODEL SMALL .DATA .CODE
START: MOV AX , @DATA MOV DS , AX
MOV CX , 0403H MOV BX , 0806H MOV DI , 0 MOV AX , 0 ADD AL , BL ADD DI , AX MOV AL , 10 MUL BH ADD DI , AX MOV AX , 100 MUL CL ADD DI , AX MOV AX , 1000 XCHG CH , CL AND CX ,0FH MUL CX
-/
ADD DI , AX END START
3. 利用跳转表技术实现根据用户输入的星期几的数字代号在屏幕上显示星期几的英文名称的功能。(提示:1)键盘输入的是数字的ASCII码,需要转换成数字。2)建立一张跳转表,表中存放打印每个星期的程序段的入口地址。3)考虑怎么使程序代码量最小。) .8086 .MODEL SMALL .DATA
TABLE BYTE 'Monday$$$$', 'Tuesday$$$', 'Wednesday$', 'Thursday$$', 'Friday$$$$', 'Saturday$$', 'Sunday$$$$' .CODE
START: MOV AX , @DATA MOV DS , AX
MOV AH , 01H INT 21H CMP AL , 30H JBE EXIT CMP AL , 38H JAE EXIT AND AX , 0FH SUB AL , 30H DEC AL MOV CL , 10 MUL CL LEA DX , TABLE ADD DX , AX MOV AH , 9 INT 21H
EXIT: MOV AH , 4CH INT 21H END START
4. 已知数据段有以下定义: NUM DW 3570
STRING DB 5 DUP(20H),’$’ ; 20H为空格的ASCII码
请编写完整程序,在屏幕上以十进制的形式将NUM这个数打印出来,可以借助STRING这个字符串。(NUM
-/
这个数可以定义为一个任意字型数)。 .8086 .MODEL SMALL .DATA ORG 100H NUM WORD 3570
STRING BYTE 4 DUP(20H),'$' .CODE
START:MOV AX , @DATA MOV DS , AX LEA DI , STRING
MOV AX , NUM MOV CX , 4
;每次循环除以10,将商作为下次的被除数,余数即为对应的十进制数字 DEC DI LP:PUSH CX CWD MOV CX , 10 DIV CX POP CX MOV BX , CX
ADD DL , 30H ;转化为对应的ASCII码 MOV [BX][DI] , DL LOOP LP
MOV AH , 09H ;输出字符串,以‘$’结尾 LEA DX , STRING INT 21H
MOV AH , 4CH ;退出程序 INT 21H
END START
5. 统计以‘$’字符结束的字符串string的字符个数。 .8086 .MODEL SMALL .DATA ORG 100H
STRING BYTE 'HELLO,WORLD!!!','MY NAME IS ASM','$' LEN BYTE ?
STR BYTE 3 DUP(20) , '$' .CODE
相关推荐: