2022年2022年汇编语言试卷答 .pdf
第 1 页 共 3 页1) 某个加法运算使标志ZF = 1 ,则标志位SF 为 A、0 2) 若用户堆栈位于存储区1000 0H 1FFFFH,则该堆栈的段地址是A、10000H将 OBJ 文件转换为EXE 可执行文件的是C、连接程序下列选项中不 属于总线接口部件的是D、算术逻辑部件3) 属于标志寄存器中的状态标志的是A、OFMOV AX, 78 执行后寄存器AX 中的值为D. 3738H4) 下列指令中有语法错误的是A、MOV SI,DI 执行如下指令“MOV SP, 4320 ”和“ PUSH BX ”后, SP 寄存器的值是C、431E循环指令LOOPNZ继续循环的条件是C、CX 0 且 ZF=05) 设 AX = 1000H ,则执行“ NEG AX ”和“ NOT AX ”后 AX 的值是 B、0FFFH6) 表示一条汇编指令所在存储单元的符号地址是C、标号7) 执行 MOV BX, SEG VAR 指令, BX 得到变量VAR 的B、段地址8) 语句 BUF DB 10 DUP(3 DUP(?, 10), 3, 10)汇编后,该缓冲区占用存储单元字节数是B、809) 若定义V1 DW A ,则变量V1 对应的存储单元中存放的数据是A、0041H10) 主程序将它的参数带给子程序,这个参数被称为A、入口参数CPU 与外设之间交换的信息类型除了C、容量信息11) 执行下列三条指令后,AX 的值是 C、0106HMOV AX, 9 ADD AL, 7 AAA 12) 下列指令执行后,变量DAB 中的内容是C、0F5H13) 使用伪指令定义:V DB 2 DUP(1,2,3 DUP(3), 2 DUP(1,0),则在 V 存储区内前10 个字节单元中的数据是B、1,2,3,3,3,1,0,1,0,114) 如下程序段中的“DEC CX ”执行的次数是C、41) 假设 AX = 1234H ,BX = 5678H ,则执行下列指令后,AX = 2340h,BL = 81h2) 已知宏定义如下:则该宏的作用是:交换参数的值。MOV AL, D1 XCHG AL, BL MOV D1, AL3) 已知 AX=98h ,BX=1212H ,CX=15H ,则执行完下列程序段后,AX、BX 、CX 的值分别为:AX = FFF6H ,BX = 1202h,DX = 0056H4) 设某数据段:DA1 的偏移地址是:80H,COUNT 的值是多少:10 , DA2+5 字节单元的内容是T 。1) BUFF DB 5, 6, 7, 58H, 62, 45H, 127, 128 COUNT EQU $ - BUFF MAX DB ? MOV BX, OFFSET BUFF 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 第 2 页 共 3 页MOV CX, COUNT - 1MOV AL, BX LOP1: INC BX CMP AL, BXJAE NEXT MOV AL, BX NEXT : DEC CX LOOP LOP1MOV MAX, AL 2) 补全程序,使JMP 指令执行后, CS :IP 执行程序的第一条指令。DATA SEGMENT DW 1234H, 5678H DATA ENDS CSEG SEGMENT ASSUME CS:CSEG START: MOV AX, DATA MOV DS, AX MOV BX, 0 MOV BX, WORD PTR 0MOV BX+2, CSJMP DWORD PTR DS: 0 MOV AX, 4C00H INT 21H CSEG ENDS END START 3) 下面程序实现依次用内存0:00:15 单元中的内容改写程序中的数据,数据的传送用栈来进行。栈空间设置在程序内。完成程序:CSEG SEGMENT ASSUME CS:CSEG DW 123H,4546H,789H,0ABCH,0DEFH,0FEDH,0CABH,987H DW 10 DUP(0) ;10 个字单元用作栈空间START: MOV AX, CS MOV SS, AX MOV SP, 22HMOV AX, 0 MOV DS, AX ;DS 段基址为0 MOV BX, 0 MOV CX, 8S: PUSH BX ;将 DS 段( BX )为偏移量的存储区取一个字的数据压栈POP CS: BX;将压入栈顶的数据取出送到CS 段ADD BX, 2 LOOP S MOV AX, 4C00H INT 21H CSEG ENDS END START 4) 根据以下执行DEBUG 命令的结果,分析程序的功能,并回答以下问题。功能是: 统计从地址为13DC:0000开始,到第一个字符$结束的缓冲区中的字节数据的个数。写出子程序的入口地址、入口参数和出口参数:入口参数: SI,出口参数:CL程序的入口地址及执行结果的存储地址是:13DE:0000 ,13DC:001BCALL 命令执行后,SP 寄存器值发生什么变化:SP 的值减 2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 第 3 页 共 3 页1. 在以 BUFF 为首地址的字缓冲区中由3 个无符号数:1234H ,7893H 和 5678H ,编写完整程序将这三个数按降序排列,结果存入原缓冲区。其中,数据段名为DATA ,代码段名为CODE 。DATA SEGMENT DAT DW 1234H,2678H,7893H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,DAT ;取第一个数CMP AX,DAT+2 JNB NEXT1 ;第 1 个数不小于第 2 个则转 NEXT1 XCHG AX,DAT+2 ;AX 为较大值NEXT1: CMP AX,DAT+4 ;与第三个数比较JNB NEXT2 ;AX 大则转 NEXT2 XCHG AX,DAT+4 ;AX 小则交换NEXT2: MOV DAT,AX ;AX 中位最大值,保存结果MOV AX,DAT+2 ; CMP AX,DAT+4 ;比较第 2 个数和第 3 个数JNB NEXT3 ;第 2 个数大则转 NEXT3 XCHG AX,DAT+4 NEXT3: MOV DAT+2,AX ;保证 AX 为较大值MOV AX,4C00H INT 21H CODE ENDS END START 2. 根据下列定义的数据段,编写程序实现判断DAT 的判断正负,并相应符号输出到屏幕。其中符号的判断和输出用子程序PL_NG 实现。输出字符用中断INT 21H ( AH = 2 ,入口参数为DL )来实现。DATA SEGMENT DAT DW 9234H DECIML DB 5 DUP(?), 0DH, 0AH, $ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,DAT CALL PL_NG OVER: MOV AH,4CH INT 21H PL_NG PROC NEAR MOV AH,2 CMP BX,0 JGE PLUS ;大于 0 则输出正号MOV DL,- INT 21H ;小于 0 则输出负号NEG BX ;将绝对值输出JMP OVER PLUS: MOV DL,+ INT 21H ;小于 0 则输出负号RET PL_NG ENDP CODE ENDS END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -