选择1、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。
A 、目标程序B、源程序C、可执行程序D、汇编程序2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。
A、ADD BH,01HB、OR BH,01HC、XOR BH,01HD、TEST BH,01H3、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1,执行SBB AL,[SI]后,正确的结果是___________。
A、AL=5FH SF=1 CF=1B、AL=60H SF=1 CF=0C、AL=5FH SF=0 CF=1D、AL=60H SF=0 CF=04、设AX=1000HNEG AXNOT AX执行上述指令后,正确的结果是___________。
A、AX=1001HB、AX=0FFFHC、AX=1000HD、AX=0111H5、CBW指令的功能是___________。
A、把源操作数的符号位扩展到目的操作数中B、把AL中的符号位扩展到AH中C、把AH中的符号位扩展到AL中D、把AX中的符号位扩展到DX中6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C、指令AND AX,OFH执行后,分离出AL低四位D、NOT AX,执行后,将AX清07、执行下列指令序列后,正确的结果是___________。
MOV AL,81HADD AL,ALADC AL,ALA、AL=05HB、AL=204HC、AL=04HD、AL=205H4、TEST DL,55HJE NEXT….NEXT:……上述程序段,执行JE指令时能产生转移的情况是。
A、DL>55HB、DL<55HC、DL=55HD、DL中第0、2、4、6位均为05、设CL=05H,要获得CL=0AH,可选用的指令是。
A、XOR CL,0FHB、NOT CLC、OR CL,0AHD、AND CL,0FH填空2、与指令LEA DI,AV等效的指令是____________。
5、如JMP指令采用段间直接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是________,而后两个字节存放的是________。
6、当主程序和子程序不在同一个代码段时,主程序调用子程序是远调用,这时系统自动将__________和__________值作为断点依次入栈。
7、VAR1 DW 10H DUP(?)语句实现留空___________个字节单元。
2、假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,0FEH,则存放字数据0FE52H的字地址是______________。
3、设CF=1,AX=8000H,执行ROR AX,1后,AX=______________,CF=______________。
三、问答题1、条件转移指令的判断条件,除标志位PF外还有哪几个标志位?2、DATl DB 1,2,3,4DAT2 DW 3412H,5678H┆MOV AX,DATl+1;将DATl+1字单元内容送入AX中MOV BL,DAT2+1;将DAT2+1字节单元内容送入BL中已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。
3、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。
例如:PUSH AX\PUSH BX \ 保护现场PUSH CX /PUSH DX/┆}恢复现场试写出恢复现场时的指令序列。
4、完成下列操作,选用什么指令:(1)将AX的内容,减去0520H及上次运算的借位;(2)将变量名TABL的段基址送AX;5、指出下面的程序段的错误之处,并改正。
CRAY PROCPUSH AXADD AX,BXRETCRAY ENDP四、程序填空题1、在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在横线处各填上一条指令完善该程序。
┇MOV AX, NUMW_____________XOR DX, DXDIV B XMOV QUI, AX_____________2、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在横线处填上适当的一条指令。
STRING DB‘COMPUTER’,‘$’┇MOV BX,0FFSET STRINGLOP:MOV DL,[BX]MOV AH,02HINT 21H______________________________JNE LOP3、下面程序段是判AL和BL中的数据是否同号,若是,则把AL中的数据求补并送到AH中,否则0→AH。
横线处填入适当指令(每处仅填一条指令)。
____________JNS KMOV AH,0JMP END0K:____________MOV AH,ALEND0:……4、从2000H单元开始,存放着14H个无符号字节数据,找出最大一个,并将其存在2000H 中。
请在横线处各填一条指令。
GATMAX:MOV BX,2000HMOV AL,[BX]MOV CX,14HP1:____________CMP AL,[BX]JAE P2MOV AL,[BX]P2:____________JNZ P1MOV BX,2000HMOV [BX],AL…五、读程序,写出程序的功能和运行结果1、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么?MOV CX,10LEA BX,BUFK2:MOV AL,[BX]CMP AL,‘Z’JBE K1SUB AL,20HMOV [BX],ALK1:INC BXLOOP K2K3:┇①上述子程序的功能是_____________。
②执行到K3时,BX=____ ________。
2、.MODEL SMALL.DATAX DW 1, 2, 3, 4, 5, 6Y DW 0.CODESTART: MOV AX,@DATAMOV DS, AXMOV CX, 6MOV SI, 0ONE: MOV AX, X[SI]MOV BX, CXMOV DX, YCALL PROC1MOV Y, DXADD SI, 2LOOP ONEMOV AX, 4C00HINT 21HPROC1 PROCTEST BX, 1JZ P1NEG AXP1: ADD DX, AXRETPROC1 ENDPEND START(1) 写出程序所实现的功能。
(2) 写出程序执行后Y的值。
2、若48H和93H是无符号数。
SOUR DB 48H,93HMZ DB ?……MOV AL,SOURCMP AL,SOUR+1JA K1MOV AL,SOUR+1K1:MOV MZ,AL试问:(1)MZ单元内容是什么?(2)48H和93H是有符号数,JA K1指令应改为什么指令?此时MZ的值是多少?六、完整编程题1、按下列要求编写一个子程序:(5分)子程序名:ABSOLT功能:求两数的绝对值之和输入参数:AX存放一个加数,BX存放另一个加数输出参数:AX存放和2、已经有FINDMAX子程序如下,其功能是找出字数组中的最大值存放在AX中。
现在ARRAY开始的字数组中存放了100个带符号数,请利用FINDMAX,找出其中最大的数,存放到MAX单元中去。
编写完整的程序。
(10分)FINDMAX P ROCMOV AX, [SI]NEXT: CMP A X, [SI+2]JG SKIPMOV AX, [SI+2]SKIP: ADD SI, 2LOOP NEXTRETFINDMAX ENDP答案一、选择题BBCBB CADA二、填空题2、mov di, offset av 5、偏移地址段基址6、cs ip 7、20h2. 7464h 3 ax=4000h,cf=0三、问答题1、cf zf sf of2、mov ax, word ptr dat1+1 mov bl, byte ptr dat2+13、pop dx pop cx pop bx pop ax4、sbb ax, 0520h mov ax, seg tabl5、在ret前加pop ax四、程序填空题1、mov bx, 500 mov rem, dx2、inc bx cmp [bx], ‘$’3、xor bl, al neg al4、inc bx dec cx五、读程序,写出程序的功能和运行结果1、小写字母转为大写字母bx=buf+102、1-2+3-4+5-6 y= -33、93h, jg k1, 48h六、完整编程题1、ABSOLT PROCCMP A X,0JG PASSNEG AXPASS: CMP B X,0JG PASS1NEG BXPASS1: ADD AX,BXRETABSOLT ENDP2、DATA SEGMENTARRAY DW 100 DUP(?)MAX DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DATA:DS START: MOV AX,DATAMOV DS,AXMOV CX,99LEA SI,ARRAYCALL FINDMAXMOV MAX,AXMOV AX,4C00HINT 21HCODE ENDSEND START。