2003年1月份浙江省高等教育自学考试汇编语言程序设计试题作者名:不详 来源:网友提供 06年6月8日
一、单项选择题 (在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共16分) 1.用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是( ) A.F400H B.2F80H C.F4000H D.2F800H 2.设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX, [1000H]则AX=( ) A.8000H B.0080H C.2080H D.8020H 3.下列四条指令中错误的是( ) A.MOV AX, [SI] B.MOV AX, [DI] C.MOV AX, [SI+DI] D.MOV AX, [SI-DI] 4.下列四条指令执行后不影响标志位的是( ) A.JNC NEXT B.CMP AX, BX C.SHL AX, 1 D.OR AL, AL 5.已知AX=0001H,下列四条指令执行后,不能使ZF=1的语句是( ) A.DEC AX B.SUB AX, 1 C.AND AX , 1 D.CMP AX,1 6.在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有( ) A.SS, SP, BP B.SS, SP, BX C.DS, BX, BP D.DS, SP, BP 7.有指令MOV AX, 1234H,指令中的立即数1234H是存储在( ) A.数据段 B.代码段 C.附加段 D.堆栈段 8.要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是( ) A.BUF DW 9 B.BUF DB 9 C.BUF DB 9 DUP (?) D.BUF DW 9 DUP (?) 9.已知AL=56H,BL=34H,都是压缩BCD码,要执行二数相加,正确的指令是( ) A.ADD AL,BL B.ADC AL,BL C.ADD BL,AL D.ADC BL,AL DAA DAA DAA DAA 10.在执行子程序段内调用CALL SUBR指令后,SP的值( ) A.加1 B.减1 C.加2 D.减2 11.完成将AX清零,并且使CF清零,下面错误的指令是( ) A.SUB AX, AX B.AND AX, 0 C.XOR AX,AX D.MOV AX,0 12.定义宏指令的伪指令是( ) A.PROC和ENDP B.CODE和ENDS C.EQU和END D.MACRO和ENDM 13.在汇编语言源程序中,表达式的计算是由( )完成的。 A.编程者 B.汇编程序 C.程序执行时 D.连接程序 14.为了使执行串操作指令时,地址按减量方式处理应使用指令( ) A.CLI B.STI C.CLD D.STD 15.有数据定义NUM DB '12345' ,经汇编后,NUM占有( )字节存储单元。 A.1 B.5 C.6 D.7 16.汇编语言源程序每个语句可以由四项组成,如语句要完成一定功能,那么该语句中 不可省略的项是 ( ) A.名字项 B.操作项 C.操作数项 D.注释项 二、填空题 (每空1分,共16分) 1.在8086/8088系统中,存储器是分段的,每段最大长度是_______字节,段内偏移地址从_______到_______。 2.在程序调试时,显示某指令存放地址是2340:0056,则物理地址是_______。 3.汇编语言源程序中的语句有三种类型,它们是_______语句,_______语句和_______语句。 4.指令MOV AX,[BX+SI+10H]源操作数寻址方式是_______。 5.执行段间返回指令RET时,将栈顶的一个字弹出到_______后,又弹出一个字到_______寄存器中。 6.已知DS=3000H,DI=1200H,(31200H)=64H,(31201H)=93H,执行NEG WORD PTR[DI]后,(31200H)=_______,(31201H)=_______。 7.执行下列指令序列 MOV AL,80H MOV BL,08H CBW IDIV BL 则 AH=_______AL=_______。 8.已知数据定义语句 ORG 120H VECT1 DW 200H VECT2 DW VECT1 执行 MOV AX,VECT1 AX=_______ MOV BX,VECT2 BX=_______。 三、简答题(每小题 4分,共12分) 1.在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。已知(DS)=2150H,(CS)=2640H,(SS)=2250H,SP=100H,问题: ( 1)数据段起始地址是多少? ( 2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式) ( 3)代码段最多可以存放多少个字节程序代码?说明理由。 2.已知数据段定义如下: DATA SEGMENT ORG 100H BUF DW 'CD', 1, 3 DUP(4, 2 DUP(8, 6)) VRA DB 4AH . . . DATA ENDS 单独执行下列语句 LEA BX, BUF BX=_______ MOV CX, VRA-BUF CX=_______(用十六进制数表示)。 3.分别说明下列两组指令中两条指令操作的相同点和不同点 ( 1)SUB AX, BX CMP AX, BX ( 2)AND CX, DX TEST CX, DX 四、程序分析题(每小题 6分,共24分) 1.MOV AX, 9090H SUB AX, 4AE0H JC L1 JO L2 JMP L3 上述程序执行后 AX=_______,程序转向_______ 2.假设寄存器AX=1234H,DX=0A000H MOV BX, 0 MOV CX, BX SUB CX, AX SBB BX, DX MOV AX, CX MOV DX, BX 上述程序段执行后 AX=_______ ,DX=_______ 程序功能是 _______ 3.BUF DB 45H, 68H, 7AH, 35H, 39H . . . MOV DI, OFFSET BUF MOV CX, 5 MOV AL, ‘a' CLD REP STOSB 该程序段执行后, BUF中的内容是_______ ,方向标志DF=_______ 4.假设寄存器AX=5AH,CX=23H . . . MOV DL, 0 LOP: SUB AX, CX JC NEXT INC DL JMP SHORT LOP NEXT: ADD AX, CX HLT 上述程序段执行后, AX=_______,DL=_______ 用数学表达式指明程序功能: _______ 五、程序填空题(每小题 6分,共12分,每空格只能填一条指令) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _______ MOV CX, 8 XOR AX, AX R1:_______ ADD SI, 2 LOOP R1 MOV CL, 8 IDIV CL HLT 2.已知数据段DAT单元存放某一数N(-6≦N≦6)下面的程序段用查表法求数N的平方值,结果送SQR单元,请将程序填写完整。 TABLE DB 0, 1, 4, 9, 16, 25 DAT DB N SQR DB ? LEA BX, TABLE MOV AL, DAT _______ JGE NEXT _______ NEXT:XLAT HLT 六、程序设计题 (第1小题6分,第2小题14分,共20分) 1.假设DATAX和DATAX+2单元存放双字P,DATAY和DATAY+2单元中存放双字Q,编程计算2P-Q,差在DX,AX中。若OF=1,程序转OVERFLOW,否则转NOOVER。(只写与试题要求有关的指令语句) 2.已知在数据区BUF1和BUF2分别存放20个字节数据。编程检查两数据区中的数据是否相同。若完全一致,则将标志单元FLAG置FFH,否则置0,并将第一次出现的不同数据的地址分别存放在ADDR1和ADDR2单元中。 要求:源程序格式完整。
|
||
| |