当前位置:首页 >> 政史地 >>

汇编语言期末复习题大全(免费)


汇编语言期末复习题
DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释 v JD:简答题 CXFX:程序分析题 CXTK:程序填空题 BC:编程题 第 1 章:基础知识 1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。 DX A、宏定义,宏调用 B、宏定义,宏展开 C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用 2、汇编语言源程序中,每

个语句由四项组成,如语句要完成一定功能,那么该语句中不可 省略的项是( B )。 DX A、名字项 B、操作项 C、操作数项 D、注释项 3、可屏蔽中断就是它的请求是否被 CPU 响应要受 ( IF )的控制。 DX 4、使用 LINK 连接命令,执行后可生成文件的扩展名为( EXE ) 。 DX 5、在寄存器间接寻址中,如果指令中指定的寄存器为 BP,则操作数在 堆栈 段中,段地址 在 SS 寄存器中。 TK 6、注释项用于说明程序段或是一条和几条指令的功能,一般用 ;(或分号) 表示注 释的开始。 TK 7、DOS 系统功能调用方式为:(1)置入口参数; (2)中断程序编号送 AH 寄存器后执行 INT 21H。 TK 8、通常主程序和子程序间参数传送的方法有三种: 用寄存器传递 、 用存储单元传递、用 堆栈传递(顺序可调换)。 TK 9、 中断 是 CPU 暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务 处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为 中断源 。 TK 10、在字符串操作指令中,DS∶ SI 指向源串,ES∶ DI 指向目的串。 TK 11、计算机系统通过 接口 与外围设备通信。 TK 12、键盘 I/O、显示 I/O 和打印 I/O 分别对应 16H 、 10H 和 17H 号中断。 TK 13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。每个字的第一个字节为显示 字符的 ASCII 码 ,第二个字节为显示字符的 属性 。 TK 14、简述上机运行汇编语言程序的过程。 JD 答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保 存,再编译成机器指令,然后连接成可执行文件,即 exe 文件,最后再运行。 15、简述程序中指令和伪指令的区别。 JD 答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。 伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编 程序的任何地方,但它们并不产生机器指令。 16、十六进制数 88H,可表示成下面几种形式,请找出错误的表示(④ ) 。 DX ① 无符号十进制数 136 ② 带符号十进制数-120
1

③ 压缩型 BCD 码十进制数 88 ④ 8 位二进制数-8 的补码表示 17、指令指针寄存器是(IP ) 。 DX 18、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B) DX A.名字的第一个字符可以是大写英文字母及小写英文字母 B.名字的第一个字符可以是字母、数字及、@、_ C.名字的有效长度≤31 个字符 D.在名字中不允许出现$ 19、CS 寄存器属于( 段寄存器 ) 。 DX 20、已知物理地址(371F0H)=12H, (371F1H)=34H, (371F2H)=56H,如从地址 371F0H 中 取出一个字的内容是( 3412H ) 。 DX 21、一个有 16 个字的数据区,它的起始地址是 70A0H∶DDF6H,则这个数据区最末一个字单 元的物理地址是( 7E814H ) 。 DX 22、简述上机运行汇编语言程序的过程。 JD 答:首先打开未来汇编,新建一个空的 汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文 件,即 exe 文件,最后再运行。 第 2 章:8086/8088 的寻址方式和指令系统 1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] ) 。 DX 2、当程序顺序执行时,每取一条指令语句,IP 指针增加的值是( D ) 。 DX A.1 B.2 C.3 D.由指令长度决定的 3、下列属于合法的指令是( D ) DX A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL 4、若 AX=349DH,CX=000FH。则执行指令 AND AX,CX 后,AX 的值是( 000DH ) 。 DX 5、 DS=8225H, 设 DI=3942H, 指令 NEG BYTE PTR[DI]操作数的物理地址是( 85B92H ) DX 6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DX A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 7、 对寄存器 AX 的内容乘以 4 的正确指令序列是( SHL AX, 1 SHL, 1 AX, )。 DX 8、 执行 INC 指令除对 SF、 有影响外, ZF 还要影响的标志位是( OF, PF AF, )。 DX 9、设 DH=10H,执行 NEG DH 指令后,正确的结果是( DH=0F0H CF=1 )。 DX 10、下列传送指令中有语法错误的是( A )。 DX A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX 11、下面指令执行后,改变 AL 寄存器内容的指令是( D )。 DX A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 12、 执行除法指令后, 影响的标志位是( AF, OF, SF, 都不确定 CF, PF, ZF )。 DX 13、执行下面指令序列后,结果是( AX=0FF82H )。 DX MOV AL,82H CBW 14、与 MOV BX,OFFSET VAR 指令完全等效的指令是( D )。 DX A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR 15、 在段定义时, 如果定位类型用户未选择, 就表示是隐含类型, 其隐含类型是( PARA )。 DX 16、MOV SP,3210H PUSH AX 执行上述指令序列后,SP 寄存器的值是( 320EH )。 DX 17、BUF DW 10H DUP(3 DUP(2,10H),3,5)
2

上述语句汇编后,为变量 BUF 分配的存储单元字节数是( 100H )。 DX 18、MOV AH,7896H ADD AL,AH 上述指令执行后,标志位 CF 和 OF 的值是( CF=1,OF=0 ) 。 DX 19、完成将带符号数 AX 的内容除以 2 的正确指令是( SHR AX,1 ) 。 DX 20、在汇编语言程序中,对 END 语句的叙述正确的是( C ) 。 DX A.END 语句是一可执行语句 B.END 语句表示程序执行到此结束 C.END 语句表示源程序到此结束 D.END 语句在汇编后要产生机器码 21、已知 BX=2000H,SI=1234H,则指令 MOV AX,[BX+SI+2]的源操作在(数据段中偏移量为 3236H 的字节)中。 DX 22、下面指令序列执行后完成的运算,正确的算术表达式应是(y=x2-1) 。 DX MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR Y,AL 23、已知(AX)=1234H,执行下述三条指令后, (AX)= (0000H) 。 DX MOV BX,AX NEG BX ADD AX,BX A.1234H B.0EDCCH C.6DCCH D. 24、将 DX 的内容除以 2,正确的指令是(C) 。 DX A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1 25、有如下指令序列: DX ORG 40H DA1 DW 0AB12H,8574H ?? MOV AX,DA1 MOV BX,OFFSET DA1 上述指令执行后,寄存器 AX 和 BX 的值分别为( AB12H,40H ) 。 26、下列数值表达式和地址表达式中,错误的是( D ) 。 DX A.MOV AL,8*14+4 B.MOV SI,OFFSET BUF+13 C.MOV CX,NUM2-NUM1 D.MOV CX,NUM2+NUM1 27、数据段定义如下: DX X1 DB 10H,50,1 X2 DW 10H,20,3 X3 DD ? COUNT EQU X3-X1 变量 COUNT 的值是( 9 ) 。 28、 为使 CX=-1 时, 转至 MINUS 而编制了一指令序列, 其中错误的序列是( C )。 DX A、INC CX JZ MINUS B、SUB CX,OFFFFH JZ MINUS C、AND CX,OFFFFH JZ MINUS D、XOR CX,OFFFFH JZ MINUS 29、AL 和 VAR 字节单元中分别存放一个带符号数,执行 CMP AL,VAR 时,如 AL>VAR,那么 溢出位和符号位 的关系是( OF=SF )。 DX 30、下面是关于汇编语言程序中使用 RET 的描述,不正确的是( C )。 DX
3

A.每一个子程序中允许有多条 RET 指令。 B.每一个子程序结束之前一定要有一条 RET 指令。 C.每一个子程序中只允许有一条 RET 指令。 D.以过程形式表示的代码段,一定有 RET 指令存在。 31、 在串操作指令前使用重复前缀指令 REPE, 终止串的重复操作条件是 ( CX=0 或 ZF=0 ) 。 DX 32、用 MOV 指令将十进制 64 以组合型 BCD 码格式送入 AX,正确使用的指令是( MOV AX, 0604H ) 。 DX 33、重复前缀指令 REP 的重复次数由 CX 决定。 TK 34、DR1 DB 10H,30H DR2 DW 10H DUP(0,2 DUP(2) ) ?? MOV BL,LENGTH DR1 MOV CL,LENGTH DR2 请问指令执行后,BL 和 CL 的值分别为 。 TK 35、设(SP)=100H,(AX)=0FFFFH STC PUSH AX ADC AX,0 PUSH AX POP BX 上述程序段运行后,(BX)= 0 ,(SP)=

1



10H

0FEH



CXFX 36、假设数据段定义如下: DA1 DW ’C’’D’ , DA2 DB 18 DUP(?) DA3 DW $-DA2 ?? MOV BX,DA3 MOV AX,DA1 上述指令执行后,BX 寄存器中的内容是 12H(或 18),AH 寄存器中的内容是 00H,AL 寄存器 中的内容是 43H 。CXFX 37、现有如下数据段 DATA SEGMENT ARRAY1 DB 1,26, ‘3456’ ARRAY2 DW 7,89H,10 VAL EQU ARRAY2-ARRAY1 DATA ENDS 请问:该数据段已占有 12(或 0CH) 字节的存储空间。 CXFX 38、当执行指令 ADD AX,BX 后,若 AX 的内容为 2BA0H,设置的奇偶标志位 PF=1,下面的 叙述正确的是( ④) 。 DX ① 表示结果中含 1 的个数为偶数 ② 表示结果中含 1 的个数为奇数 ③ 表示该数为偶数 ④ 表示结果中低八位含 1 的个数为偶数 39、AND,OR,XOR,NOT 为四条逻辑运算指令,下面的解释正确的是( C ) DX
4

A.指令 XOR AX,AX 执行后,AX 内容不变,但设置了标志位 B.指令 OR DX,1000H 执行后,将 DX 最高位置 1,其余各位置 0 C.指令 AND AX,OFH 执行后,分离出 AL 低四位 D.NOT AX,执行后,将 AX 清 0 40、完成对 CL 寄存器的内容乘以 4 的正确操作是( C ) DX A.ROL CL,1 B.MUL 4 ROL CL,1 C.SHL CL,1 D.MOV CL,2 SHL CL,1 SHL CL,CL 41、下面各传送指令中,正确的是( C ) DX A.MOV [DI],[SI] B.MOV[DX+DI],AL C.MOV WORD PTR [BX],0100H D.MOV AL,BX 42、要实现使 BETA 的值为 56,应采用语句为( BETA EQU 56 ) DX 43、REPZ CMPSW 指令,重复执行的终止条件是( CX=0 或 ZF=0 ) DX 44、下面程序段执行后,AL 中的内容是( 21H ) DX MOV AX,8833H ADD AL,AH DAA 45、完成将累加器 AL 清零,并使进位标志 CF 清零,下面错误的指令是(① ) 。 DX ① MOV AL,00H ② AND AL,00H ③ XOR AL,AL ④ SUB AL,AL 46、下列指令执行后总是使 CF=0,OF=0 的是( AND) 。 DX 47、完成同指令 XCHG AX,BX 相同功能的指令或指令序列是(④ ) 。 DX ① MOV AX,BX ② MOV BX,AX ③ PUSH AX POP BX ④ MOV CX,AX MOV AX,BX MOV BX,CX 48、设 AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA 之后,其结果应是(AH=01,AL=05 ) 。 DX 49、设 AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后 OF,CF 的值为 (OF=1,CF=1 ) 。 DX 50、在串操作指令前使用重复前缀指令 REPE,终止串的重复操作条件是(CX=0 或 ZF=0 ) 。 DX 51、下面指令中,合理而有意义的指令是(④ ) 。 DX ① REP LODSB ② REP SCASB ③ REP CMPSB ④ REP MOVSB 52、在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D ) DX A.STOSW B.LODSW C.SCASW D.CMPSW 53、AL=0AH,下列指令执行后能使 AL=05H 的是( C ) DX A.NOT AL B.AND AL,0FH C.XOR AL,0FH D.OR AL,0FH 54、DA1 DW‘AB’,‘CD’,‘EF’,‘GH’ ┇ MOV AX,DA1+3
5

指令执行后 AX 中的内容是( ‘FC’ ) 。 DX 55、在汇编语言程序中,对 END 语句的叙述正确的是( ③) 。 DX ① END 语句是一可执行语句 ② END 语句表示程序执行到此结束 ③ END 语句表示源程序到此结束 ④ END 语句在汇编后要产生机器码 56、下面的数据传送指令中,错误的操作是(④ ) 。 DX ① MOV SS:[BX+DI],1000H ② MOV DX,1000H ③ MOV WORD PTR[BX],1000H ④ MOV DS,2000H 57、下面指令执行后,变量 DAB 中的内容是(0F5H ) 。 DX DAW DW2A05H DAB DB 0FAH : MOV AL,BYTE PRT DAW SUB DAB,AL 58、执行下列指令后,正确的结果是(② ) 。 DX MOV AL,100 MOV BL,-2 ① AL=100H BL=02H ② AL=64H BL=0FEH ③ AL=64H BL=82H ④ AL=100H BL=0FEH 59、设数据段中已有: DA1 DB 12H,34H DA2 DW 56H,78H 下面有语法错误的语句是(② ) 。 DX ① ADR1 DW DA1 ② MOV DA1+1,AX ③ MOV BYTE PTR DA2+1,AL ④ MOV WORD PTR DA1 +1,AX 60、 DATA SEGMENT TA1 DW 0102H,0304H,0506H TA2 DB 02H,03H,04H : MOV BX,DS:[0006H] AND BX,0FFH AND BH,[BX] 上述指令序列运行后,BX 的内容是( 0402H) 。 DX 61、若 DS=0F3EH,SI=2000H,COUNT=0A8H,指令 MOV AX, (SI+COUNT)中,源操作数的有效 地址 EA 为___20A8H _____,其物理地址为___11488H _____。 TK 62、如 JMP 指令采用段间间接寻址,那么由 4 个相邻字节单元中存放有转移地址,其中前两 个字节存放的是____ IP____,而后两个字节存放的是____ CS____。 TK 63、在串操作程序中,通常在重复前缀指令 REPZ 或 REPNZ 后,选用的串操作指令是___ STOS____或___ CMP__才有实际意义。 TK
6

64、已知:BX=1357H,DI=2000H,DS=2000H,CS=4000H,分别指出下面各指令中存储器操作 数的物理地址。 JD (1)MOV AL,[BX] 21357H (2)MOV CS:[BX+DI],AH 43357H 65、 0P1 DB 1,2 0P2 DW 3412H,5678H ┇ MOV AX,OP1+1;字单元(OP1+1) AX MOV BL,OP2+1;字节单元(OP2+1) BL 上述二条传送语句有语法错误,请根据注释字段的说明,将其改正。 JD MOV AX,WORD PTR(OP1+1) MOV BL,BYTE PTR(OP2+1) 66、下列语句在存储器中分别为变量分配多少字节? JD (1)AD2 DW 10 DUP(?) ,10 22 (2)AD3 DD 100 DUP(?) 400 67、简述下面两条指令分别是什么语法错误? JD MOV [BX],[SI] MOV AX,DL MOV 指令不能在两个存储器操作数之间进行; 操作数类型不匹配。 68、在指令系统中,段内、段间返回均为 RET 指令。试回答: JD (1)执行段内返回 RET 指令时,执行的操作是:栈顶内容→IP,SP+2→SP (2)执行段间返回 RET 指令时, 执行的操作是: ①栈顶内容→IP, SP+2→SP ②栈顶内容→CS, SP+2→SP 69、 ARY DW 10 DUP(?) ┇ MOV AL,TYPE ARY MOV BL,LENGTH ARY MOV CL,SIZE ARY 上述 MOV 指令序列执行后的结果是什么? JD AL=2 BL=10 CL=20 70、设某数据段: JD DATA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H DA1 DB 'COMPUTER' DB 0AH,0DH
7

COUNT EQU $-DA1 DA2 DW'CO','MP','UT','ER' DATA ENDS 试回答:(1)DA1 的偏移地址是: 20H (2)COUNT 的值是 0AH (3)DA2+5 字节单元的内容是 ‘U’的 ASCII 码_ 71、已知 AX=0FF60H,CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX 执行上述指令序列后,AX=_________0__________,CF=______0__________。 CXFX 72、设寄存器 AL,BL,CL 中内容均为 76H, XOR AL,0FH AND BL,0FH OR CL,0FH 执行上述指令序列后,AL=______79H ___,BL=__06H ___CL=_7FH___。 CXFX 73、已知 AX=0A33AH,DX=0F0F0H AND AH,DL XOR AL,DH NEG AH NOT AL 执行上述指令序列后,AH=____60H____,AL=_____35H_。 CXFX 74、假定(DX)=10111001B, (CL)=0.3, (CF)=1,试确定下列各条指令单独执行后,DX 中 的值。 JD (1)SHR DX,1 (2)RCR DL,1 (3)RCL DX,CL 答:(1) 005CH (2) 00DCH (3) 05CCH 75、写出完成下述功能的程序段: JD (1)传送 25H 到 AL 寄存器 (2)将 AL 的内容乘以 2 (3)传送 15H 到 BL 寄存器(4)AL 的内容乘以 BL 的内容 并请写出最后(AX)=? 答: (1)MOV AL, 25H (2)SHL AL, 1 (3)MOV BL, 15H(4)MUL BL 最后, (AX) =612H =1554 76、写一程序段,求双字长数 DX∶bX 的相反数。 JD 答: NEG DX NEG AX SBB DX, 0 77、在某子程序的开始处要保护 AX,BX,CX,DX 四个寄存器信息,在子程序结束时要恢复 这四个寄存器信息。例如: JD PUSH AX\ PUSH BX \ 保护现场 PUSH CX / PUSH DX/
8

: }恢复现场 试写出恢复现场时的指令序列。 答: POP DX POP CX POP BX POP AX 78、完成下列操作,选用什么指令: JD (1)将 AX 的内容,减去 0520H,和上次运算的借位; (2)将变量名 TABL 的段地址送 AX; 答: (1)SBB AX,0520H(2 分) (2)MOV AX,SEG TABL(2 分) 79、D1 DB 20H DUP(?) D2 DW D1 请写出用一条指令实现取 D1 的偏移地址=>SI 中的三种方法。 JD 答: ① LEA SI,D1 ② MOV SI,OFFSET D1 ③ MOV SI,D2 80、A DW 1234H B DW 5678H : PUSH A PUSH B POP A POP B 试回答: CXFX ①上述程序段执行后(A)=__________, (B)=_____ ②设执行前 SP=200H,执行后 SP=____________ 答: ①(A)=5678H(2 分) (B)=1234H(2 分) ②SP=2000H(2 分) 81、现有下列程序段: CXFX MOV AX,6540H MOV DX,3210H MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 试问上述程序段运行后, (AX)=_5400H_ (BL)=_06H_(DX)=_2106H_ 82、分析下面程序段, CXFX MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL 试问程序段执行后(BL)=__0E4H_(AL)=__0DDH___
9

83、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇ SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA3 上述程序段运行后,CX=___44AAH___,DX=__44D5H___。 CXFX 84、设(SP)=100H,(AX)=0FFFFH STC PUSH AX ADC AX,0 PUSH AX POP BX 上述程序段运行后,(BX)= 0 ,(SP)= 0FEH CXFX



85、STRING DB ‘ABCDEFGHIJ' : MOV AH,01 ;从键盘输入字符 1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H ;显示输出 INT 21H : 试回答: (1)上述程序段的功能是什么? CXFX 根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示 STRING 中第几个字符。 (2) 如从键盘输入字符‘4',程序段有什么结果? 显示器显示字符‘D’ 86、已知: BX=4567H NEG BX INC BX NEG BX DEC BX 程序段执行后,BX=____4565H___,CF=___1_____。 CXFX 87、已知数据段中定义 DAT1 DB 12H,34H,56H,78H MOV CX,0 MOV AX,WORD PTR DAT1 MOV CL , DAT1+3 当 程 序 段 执 行 完 后 AX=___3412H____ , CX=__0078H_____ 。 CXFX
10

88、DA1 ┇ MOV AND MOV SHL CXFX

DB 83H,72H,61H,94H,5AH CX,WORD PTR DA1 CX,0FH AL,DA1+3 AL , CL

上 述 指 令 序 列 执 行 后 , AL=__0A0H____ , CL=__03H____。

89、现有如下程序段: CXFX DATA SEGMENT DA3 EQU 1234H ORG 0020H DA4 EQU $-DA2 DA1 DW 12H,23H DA5 DB 31H,32H DA2 DB 11H,21H DATA ENDS 请回答: (1)该程序段已占有的存储字节数是多少?(2)符号名 DA4 的值是多少?符号 名 DA5 的值是多少? 答:(1) 该程序段已占有的存储字节数是 8 个字节。(2) 符号名 DA4 的值为 2,符号名 DA5 的值是 0026H。 90、执行下列程序段后,回答问题。 CXFX ORG 1221H MOV BX,OFFSET NUM NUM DW 12H MOV CL,BYTE PTR NUM+1 ? MOV CH,TYPE NUM MOV AX,NUM HLT 请问: (AX)=______, (BX)=______, (CX)=______。 答:(AX)=0012H (BX)=1221H (CX)=0200H 91、执行下列指令后 AX、BX 寄存器的内容? CXFX MOV SI,10H MOV AX,1234H MOV [SI+12H],AX LEA BX,[SI] MOV [SI+14H],BX 答:AX 为 1234H,BX 为 22H LES BX,DWORD PTR [SI+12H] 92、试编制一程序段,用串操作指令实现以 DA_BY 为首址的 20H 个字节单元中存放相同字符 ‘Y’(设 DA_BY 存储区已有 ES 指向) 。 BC LEA DI,DA_BY MOV CX,32 MOV AL,‘Y’ CLD REP STOSB 93、在 BUF1 和 BUF2 两个数据区中,各定义有 10 个带符号字数据,试编制一完整的源程序, 求它们对应项的绝对值之和,并将和数存入以 SUM 为首址的数据区中。 BC DATA SEGMENT BUF1 DW-56,24,54,-1,89,-8?? BUF2 DW45,-23,124,345,-265,?? SUM DW10DUP(0)
11

DATA ENDS 94、编制程序段实现:将 AX 寄存器中的 16 位二进制数分成四组,每组 4 位,然后把这 4 组 数分别放在 AL、BL、CL、和 DL 中。 BC MOV BH,AL MOV CH,AH MOV AL,AH AND AL,0F0H MOV BL,AH AND BL,0FH MOV CL,BH AND CL,0F0H MOV DL,BH AND DL,0FH 95、在 NUMW 单元存放有一个 0-65535 范围内的整数,将该数除以 500,商和余数分别存入 QU1 和 REM 单元,请在空行处各填上一条指令完善该程序。 CXTK ┇ MOV AX,NUMW ____ MOV BX,500_________ XOR DX,DX DIV BX MOV QUI,AX ____ MOV REM,DX _________ 96、已知数据段中定义 DAT1 DB 12H,34H,56H,78H MOV CX,0 MOV AX,WORD PTR DAT1 MOV CL,DAT1+3 当程序段执行完后 AX=___3412H _____,CX=___0078H _____。 97、DA1 DB 83H,72H,61H,94H,5AH ┇ MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3 SHL AL,CL 上述指令序列执行后,AL=___0A0H ____,CL=___03H ____。 98、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇ SHR DA3,1 MOV DX,DA3 SHL DA4,1
12

CXFX

CXFX

MOV CX,DA3 上述程序段运行后,CX=____44AAH _____,DX=_____44D5H _______。 CXFX 99、编制完整程序实现下列算式:W=X+Y+36-Z。设 X、Y、Z、W 均为双字长数据,各自的低 十六位数和高十六位数分别存放在 X、X+2、Y、Y+2、Z、Z+2 的存储单元中,结果的低十六位字和 高十六位字分别存放在 W 和 W+2 两个单元中。 BC DATA SEGMENT X DD ? Y DD ? Z DD ? W DD ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,X ADD AX,Y MOV BX,X+2 ADC BX,Y+2 ADD AX,36 ADC BX,0 SUB AX,Z SBB BX,Z+2 MOV W,AX MOV W+2,BX CODE ENDS END START

第 3 章:8086 汇编语言程序格式 1、指令 JMP FAR PTR DONE 属于(段间转移直接寻址) 。 DX 2、下列叙述正确的是(C) 。 DX A.对两个无符号数进行比较采用 CMP 指令,对两个有符号数比较用 CMPS 指令 B.对两个无符号数进行比较采用 CMPS 指令,对两个有符号数比较用 CMP 指令 C.对无符号数条件转移采用 JAE/JNB 指令,对有符号数条件转移用 JGE/JNL 指令 D.对无符号数条件转移采用 JGE/JNL 指令,对有符号数条件转移用 JAE/JNB 指令 3、一个有 128 个字的数据区,它的起始地址为 12ABH:00ABH,请给出这个数据区最末一个 字单元的物理地址是(12C59H) 。 DX 4、某存储单元的物理地址是 12345H,可以作为它的段地址有( D ) DX A.2345H B.12345H C.12340H D.1234H 5、在执行 DAA 指令,当高四位 BCD 码校正时产生进位,如要把此进位值送入 AH 中,对这进 位值的操作应是(进位值在 CF 中,校正后根据 CF 内容再加在 AH 中) DX
13

6、执行后使 BX=0 的同时也使 CF=0,OF=0 的指令是( XOR BX,BX ) DX 7、在执行下列指令时,需要使用段寄存器 DS 的指令是( D ) DX A.STOSW B.ADD AL,CL C.NEG BX D.INC DA[BX] 8、无论 BH 中原有的数是奇数或偶数,若要使 BH 中的数一定为奇数,应执行的指令是( OR BH,01H ) DX 9、比较两个带符号的数 A、B,当 A=B 时程序转移,测试的条件为( ZF=1 ) DX 10、使用 DOS 系统功能调用时,使用的软中断指令是( B ) DX A.INT 21 B.INT 10H C.INT 16H D.INT 21H 11 、 十 六 进 制 数 0FFF8H 表 示 的 十 进 制 正 数 为 ____+65528____ , 表 示 的十 进 制 负 数 为 ____-32760____。TK 12、CPU 的标志寄存器中标志位,可以分为两大类,其中一类称为___状态_____标志位,另 一类称为____控制____标志位。 TK 13、当标志位___CF___=1 时表示无符号数运算产生溢出,而当标志位__ OF____=1 是表示带 符号数运算产生溢出。 TK 14、在程序执行过程中,IP 寄存器中始终保存的是 (下一条指令的首地址) 。 DX 15、PSW 寄存器中共有___6___位条件状态位,有___3___位控制状态位。 。 () DX 16、串指令中的目的操作数地址是由___ ES:[DI]___提供。 17、8086CPU 在基址加变址的寻址方式中,变址寄存器可以为(SI 或 DI) 。 DX 18、什么叫寻址方式?常用的寻址方式有哪些? JD 答:寻址方式是指寻找指令中操作数所在地址的方法。 常用的寻址方式有:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、基址 加变址、隐含寻址等。

(

第 4 章:顺序程序设计 1、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有 D )。 A、CMP B、SUB C、AND D、MOV



5

















1、检查二个无符号数的关系,若要实现 AL≥BL 时分支去 LOP1 处,那么在“CMP AL,BL” 指令后应跟的分支指令是( JC LOP1 ) DX 2、下面指令序列测试 BH 中的数是否为奇数,若为奇数则转移至 K1 处,横线处的指令应为 ( ) 。 DX TEST BH,01H __JNE_______K1 3、 测试 BL 寄存器内容是否与数据 4FH 相等, 若相等则转 NEXT 处执行, 可实现的方法是 ②) ( 。 DX ① TEST BL,4FH JZ NEXT
14

② XOR BL,4FH JZ NEXT ③ AND BL,4FH JZ NEXT ④ OR BL,4FH JZ NEXT 4、当一个带符号数大于 0FBH 时程序转移,需选用的条件转移指令是( JNLE) 。 DX 5、 MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD AL,BL ADC AH,0 DEC CL JNZ AGAIN 问: (1)该程序段完成的功能是:将 AX 内容乘 3 送 BX 中 CXFX (2)AX=___012CH_____。 6、 MOV DL,AL NOT DL TEST DL,04H JE NEXT ┇ NEXT:? 若上述程序段执行时产生分支,说明 AL 中的数第几位一定为 1?程序段执行后 CF 是多 少? CXFX 第 2 位;CF=0 7、设 AX,BX 中的数一个为正数,一个为负数,下面程序段完成将正数送到 PLW 单元中存放, 请将程序中所缺指令语句补上。 CXTK TEST AX,8000H __JE K1 或 JZ K1_________ MOV PLW,BX JMP DONE K1:__MOV PLW,A___________ DONE: 8、下面程序段是判断寄存器 AH 和 AL 中第 3 位是相同,如相同,AH 置 0,否则 AH 置全 1。 试把空白处填上适当指令。 CXTK ___ XOR AH,AL____ AND AH,08H ____ JE ZERO_____ MOV AH,OFFH JMP NEXT ZERO:MOV AH,0 NEXT:??
15

9、以 BUF 为首址的字节单元中,存放了 COUNT 个无符号数,下面程序段是找出其中最大数 并送入 MAX 单元中。 CXTK BUF DB 5,6,7,58H,62,45H,127,?? COUNT EQU $-BUF MAX DB? ┇ MON BX,OFFSET BUF MOV CX,COUNT-1 MOV AL,[BX] LOP1:INC BX ____ CMP AL,[BX]_______ __ JAE NEXT MOV AL,[BX] NEXT:DEC CX _____ JNZ LOP1___________ MOV MAX,AL 10、编程序段计算 SUM=∑ai=a1+a2+...+a20,已知 a1......a20 依次存放在以 BUF 为首 址,i=1 的数据区,每个数据占两个字节,和数 SUM 也为两个字节。 (要求用循环结构编写,循环控 制采用计数控制) 。 (此题勿需书写源程序格式, 只需把试题要求的有关指令序列书写出来。 ) CX MOV AX,0 MOV BX,OFFSET BUF MOV CX,20 LOP:ADD AX,[BX] INC BX INC BX LOOP LOP MOV SUM,AX 11、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 CX 答: BEGIN:MOV AH,1 INT 21H CMP AL,’a’ JB STOP CMP AL,’z’ JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET 12、 AND AL,AL JZ BRCH1 RCR AL,1
16

JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 : 上述程序运行后,试回答: CXFX (1)当(AL)=__0________时,程序转向 BRCH1 (2)当(AL)=__1________时,程序转向 BRCH2 (3)当(AL)=__-1________时,程序转向 BRCH3 13、下面程序的功能是什么? CXFX MOV CH,4 LAB:MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,3AH JL PRINT ADD DL,7 PRINT:MOV AH,02 INT 21H DEC CH JNZ LAB 显示输出 BX 寄存器里的内容 14、阅读如下程序: CXFX ADRR DB XXH,XXH,??,XXH CMP ADRR[BX],0 NUM EQU $ -ADRR LOOPZ DON RETT DB? JNZ NEXT ? MOV BL,OFFH MOV CX,NUM NEXT:MOV RETT,BL MOV BX,-1 HLT DON:INC BX 请问: (1)该程序完成的功能是什么?(2)程序执行后指出 RETT 字节单元中的内容是什么? 答:(1) 在以 ADRR 为起始地址的数组中,查找第一个非 0 数据。 (2) 若找到则将第一个非 0 数据在数组中的偏移量送入 RETT 单元中;若无非 0 数据, 则将 OFFH 送入 RETT 单元中。 15、现有一子程序: CXFX SUB1 PROC PLUS:TEST BL,80H TEST AL,80H JE EXITO JE PLUS XCHANGE:XCHG AL,BL TEST BL,80H EXITO:RET JNE EXITO SUB1 ENDP JMP XCHANGE 试回答:
17

(1)子程序的功能是什么? (2)若调用子程序前 AL=9AH,BL=77H,则返回主程序时,AL=______,BL=______。 答:(1)子程序的功能是判别 AL 和 BL 中的数是否为异号数,当为异号时交换,否则不变。 (2) AL=77H, BL=9AH 16、阅读程序段: CXFX BLOCK DB 20H,1FH,08H,81H,OFFH? LOP1:CMP AL,[SI+1] RESULT DB? JNG NEXT ? MOV AL,[SI+1] START:LEA SI,BLOCK NEXT:INC SI MOV CX,[SI] LOOP LOP1 INC SI MOV RESULT,AL MOV AL,[SI] HLT 请问: (1)该程序完成的功能是什么?(2)该程序循环的次数是多少? 答:(1) 该程序完成的功能是从 20H(32)个有符号数中找出最小的数送入 RESULT 单元中。 (2) 该程序的循环次数是 1FH(31) 。 17、阅读如下程序段,回答所提出的问题,假定 X1,X2,XN 为无符号数。 CXFX ORG 100H BLOK DW X1,X2,?,XN COUNT EQU($-BLOLOK)/2 RESULT DW COUNT,? LEA BX,BLOK-2 MOV CX,RESULT XOR AX,AX GOON:ADD BX,2 CMP AX,[BX] JAE NEXT MOV AX,[BX] NEXT:LOOP GOON MOV RESULT+2,AX 程序段执行完,回答下述问题 RESULT+2 字存储单元的内容=______ BX=______ 程序循环次数=______ 答: RESULT+2 字存储单元的内容是 MAX(X1, X2, ? XN) BX= 100H + 2×(COUNT-1) 程序循环次数= COUNT 18、下面程序的功能是什么? CXFX MOV AX,X CMP AX,Y JGE LAB XCHG AX,Y LAB:MOV X,AX 答:选择 X,Y 中的较大值存入 X 中 19、某程序欲用单个字符显示的 2 号功能调用去显示 STRING 中的字符串‘COMPUTER’(不 显示字符‘$’! ).试在空白处填上适当的一条指令。 CXTK
18

STRING DB‘COMPUTER’,‘$’ ┇ MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H _____ INC BX_______________ _____CMP [BX],24H________ JNE LOP 20 下面程序段是判断寄存器 AH 和 AL 中第 3 位是相同,如相同,AH 置 0,否则 AH 置全 1。 试把空白处填上适当指令.CXTK ____ XOR AH,AL_______________ AND AH,08H _____ JE ZERO______________ MOV AH,OFFH JMP NEXT ZERO:MOV AH,0 NEXT:?? 21、在表 TABLE 处存放着 N 个无符号字节数,求表中前 10 个字节数的总和并保存在 AX 寄存 器中。如果总和值超过 AX 寄存器的容量,则置 AX 寄存器内容不变。请在程序中的空格处填入适当 指令使其完整。 CXTK LEA BX,TABLE (2) MOV CX,10 JC END0 MOV SUM,AX DON:INC BX MEXT: (1) (3) ADC AH,0 ENDO:HLT JNC DON 答: (1) ADD AL, [BX] (2) MOV AX, SUM (3) LOOP NEXT 22、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 BC 答: BEGIN:MOV AH,1 INT 21H CMP AL,’a’ JB STOP CMP AL,’z’ JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET 23、试编制一源程序,统计 DA1 字单元中含 0 的个数,如统计的个数为奇数,则将进位位置 1,否则进位位清 0。 BC DATA SEGMENT
19

DA1 DW XXXX DATA ENDS 答: CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H JNE L1 CLC JMP DONE L1: STC DONE: MOV AH,4CH INT 21H CODE ENDS END START 24、编定程序段,用 DOS 的 1 号功能调用通过键盘输入一字符,并判断输入的字符。如字符 是"Y",则转向 YES 程序段;如字符是"N",则转向 NO 程序段;如是其他字符,则转向 DOS 功能调 用,重新输入字符。(考生勿需写出源程序格式,只需写出与试题要求有关的指令序列) (YES 和 NO 分别是两程序段入口处的标号) BC KEY:MOV AH,1 INT 21H CMP AL,‘Y’ JE YES CMP AL,‘N’ JE NO JMP KEY 答案: DATA SEGMENT BUF1 DW -56,24,54,-1,89,-8,---BUF2 DW 45,-23,124,345,-265,---SUM DW 10 DUP(0) DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0)
20

STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX,DATA MOV DS,AX MOV CX,10 LEA SI,BUF1 LEA DI,BUF2 LEA BX,SUM NEXT:MOV AX,[SI] MOV DX,[DI] TEST AX,8000H JE TDX NEG AX TDX:TEST DX,8000H JE ADDS NEG DX ADDS:ADD AX,DX MOV [BX],AX ADD SI,2 ADD DI,2 ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START 25、 LEA SI,STR MOV AL,ODH XOR CX,CX GOON:CMP AL,[SI] JZ NEXT INC CX INC SI JMP GOON NEXT:MOV COUNT,CX 字节变量 STR 中存放着一个字符串‘abcdefGHIJK’ ,以 0DH 为结束标志,上述指令序列完成 的功能是 求字符串长度 ,执行以上指令后字变量 COUNT= 11 。 CXFX 26、下列程序片段用来分别统计 ARRAY 数组中奇数和偶数的个数。请在空白处填写合适的指 令。 CXTK DATA SEGMENT ARRAY DW 23ABH,1570H,567,1765H,46,5210H COUNT EQU ($-ARRAY)/2
21

DA1 DA2 DATA

DB ? DB ? ENDS ?? LEA SI,ARRAY MOV CX,COUNT LOP1:MOV AX,[SI] TEST AX,0001H JZ LOP2 INC BL JMP LOP3 LOP2:INC BH LOP3: ADD SI,2 DEC CX JNZ LOP1 MOV DA1,BL MOV DA2,BH -1 x<0 27、编写计算下面函数值的程序 y= 0 x=0 1 x>0 其中,输入数据 x 和输出数据 y 均在数据段中定义,且皆为字节变量。 DATA SEGMENT X DB 45H Y DB ? DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,XXX MOV AH,0 CMP AL,0 JGE NEXT1 MOV BL,-1 JMP OVER NEXT1:CMP AL,0 JE NEXT2 MOV BL,1 JMP OVER NEXT2:MOV BL,0 OVER: MOV ZZZ,BL MOV AH,4CH INT 21H
22

BC

CODE ENDS END START 28、写一个把字符串中的大写字母改写为小写字母的子程序(近过程) 。设字符串以 0 为结 束标志。 BC ;子程序名:STRLWR ;功 能:把字符串中的所有大写字母改写为小写字母 ;入口参数:DS∶BX=存放改写所需字符串的缓冲区首地址 ;出口参数:无 STRLWR PROC PUSH AX PUSH SI MOV SI,BX AGAIN: MOV AL,[SI] OR AL,AL JZ OK CMP AL,’A’ JB NEXT CMP AL,’Z’ JA NEXT OR AL,20H(或者 ADD AL,30H) MOV [SI],AL NEXT: INC SI JMP AGAIN OK: POP SI POP AX RET STRLWR ENDP 第 6 章 : 循 环 程 序 设 计 1、循环控制指令 LoopNZ/LoopNE 控制循环继续执行的条件是(CX≠0 且 ZF=0) DX 2、循环指令 LOOPNZ 终止循环的条件是( CX=0,或 ZF=1 )。 DX 3、检查 BUF 的内容是否为正偶数,如是正偶数,则 0TAL。下面程序段正确的是( C )。 DX A、MOV AL,BUF B、MOV AL,BUF JS K1 AND AL,11 SHR AL,1 JNZ K2 JNC K1 MOV AL,0 MOV AL,0 K2:?? K1:??

23

D、MOV AL,BUF C、MOV AL,BUF JNP K4 TEST AL,81H TEST AL,80H JNZ K3 JNZ K4 MOV AL,0 MOV AL,0 K3:?? 4、下列描述中,执行循环的次数最多的情况是( A K4:…… DX ) 。 A.MOV CX,0 B.MOV CX,1 LOP:LOOP LOP LOP:LOOP LOP C.MOV CX,0FFFFH D.MOV CX,256 LOP:LOOP LOP LOP:LOOP LOP

5、 DATA SEGMENT S9 DB0,1,2,3,4,5,6,7,8,9 DATA ENDS ┇ LEA SI,S9 LEA,DI,S9+1 MOV CX,5 LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP 上述程序段运行后,S9 开始的 10 个字节存储单元内容是什么? CXFX S9 DB 1,0,3,2,5,4,7,6,9,8 6、实现将 DX:AX 中存放的 32 位数扩大四倍,正确的程序段是(③ ) 。 DX ① SHL AX,2 ROL DX,2 ② RCL AX,2 SHL DX,2 ③ MOV CX,2 LOP:SHL AX,1 RCL DX,1 LOOP LOP ④ SHL AX,1 SHL AX,1 RCL DX,1 RCL DX,1 7、在下列指令中, D 指令的执行会影响条件码中的 CF 位。 DX A.JMP NEXT B.JC NEXT C.INC BX D.SHL AX,1 8、下列指令执行时出错的是(A) 。 DX A.ADD BUF1,BUF2 B.JMP DWORD PTR DAT [BX] C.MOV AX,[BX+DI] NUM
24

D.TEST AL,08H 9、在下列指令的表示中,不正确的是(C) 。 DX A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 10、在进行二重循环程序设计时,下列描述正确的是(A) 。 DX A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 11、条件转移指令 JNE 的测试条件为(ZF=0) 。 DX 12、执行如下程序: MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后(BX)= (101) 。 DX 13、上题的程序执行后(AX)= (5050) 。 DX 14、对于下列程序段: AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用__ REP MOVSB __指令完成同样的功能。 DX 15、 DA1 DB‘ABCDEFGHI’ DA2 DB 9 DUP(0) ┇ LEA SI,DA1 LEA DI,DA2 MOV CX,9 CLD LOP: LODSB SUB AL,10H STOSB LOOP LOP . . . 试问:①写出程序执行后 DA2 各字节中的数据。 CXFX ②保持程序功能情况下,程序中 可否改写为 123456789;不能更改

25

16、程序段如下: CXFX BLK1 DB 46,84,34,-5,20,122,73 : MOV CX,7 LEA S1,BLK1 NEXT: MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] : 请回答程序段运行后: (AL)=___5 或 0FBH__ (BL)=___14H 或 20______ 17、下面程序的功能是什么? CXFX STRING DB 100 DUP(?) MOV AX,SEG STRING MOV DS,AX LEA SI,STRING MOV CX,100 LAB: MOV AL,[SI] CMP AL,’a’ JB LAB1 CMP AL,’z’ JA LAB1 SUB AL,32 MOV [SI],A LAB1: INC SI LOOP LAB 将 STRING 里的小写字母’a’-‘z’转成相应的大写字母’A’-‘Z’ 18、现有下列数据段: CXTK DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把 STR1 中所有字符逆向传送到 BUF 缓冲区(即 STR1 中 第一个字符送到 BUF 的最后一个单元,STR1 中最后一字符送到 BUF 的第一个单元) 。试 把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT ___CLD_或 STD_____ LOOP:MOVSB
26

______ SUB SI,2__或____ ADD DI,2__ LOOP LOP 19、下述程序段完成计算 2~20 之间的偶数的和,并存于 AX 中。试把空白处填上 适当的指令。 CXTK XOR AX,AX MOV BX,0 MOV CX,10 或 MOV CX,0AH CONT: ADD AX,BX ADD BX,2 LOOP CONT 20、BEG 为起始地址的存储区域中存放有 100 个字节数据,现将其首、尾颠倒过 来,重新排放这 100 个字节数据。请在程序中的空格处填入适当的指令使其完整。 CXTK MOV CX,32H LEA SI,BEG MOV DI,SI (1) DON:MOV AL,[SI] (2) MOV [SI],AL (3) DEC DI LOOP DON HLT (1) ADD DI, 99 (2) XCHG AL, [DI] (3) INC SI 21、试编制一源程序,统计 DA1 字单元中含 0 的个数,如统计的个数为奇数,则 将进位位置 1,否则进位位清 0。 BC DATA SEGMENT DA1 DW XXXX DATA ENDS 答: CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT
27

答:

INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H JNE L1 CLC JMP DONE L1: STC DONE: MOV AH,4CH INT 21H CODE ENDS END START 22、下述程序段完成计算 2~20 之间的偶数的和,并存于 AX 中。试把空白处填上 适当的指令。 CXTK XOR AX,AX MOV BX,0 MOV CX,10 或 MOV CX,0AH CONT: ADD AX,BX ADD BX,2 LOOP CONT 23、如下程序应用冒泡法对一个无符号数组排序(由小到大排序) ,请完成该程 序。 (注:为该程序分配 100 字的堆栈存储空间。 ) CXTK SSEG SEGMENT STACK DW 100 DUP (?) SSEG ENDS DSEG SEGMENT SWAP DB ? ARRAY DW 32760, 127, 0, 65000, 230, 100 DSEG ENDS CSEG SEGMENT ASSUME CS∶CSEG,DS∶DSEG,SS∶SSEG START: MOV AX,DSEG MOV DS,AX SORT: MOV CX,5 MOV SI,0 MOV SWAP,0 INNER: MOV AX,ARRAY[SI] CMP AX,ARRAY[SI+2] JBE NOSWAP XCHG AX,ARRAY[SI+2] MOV ARRAY[SI],AX MOV SWAP,1 NOSWAP: ADD SI,2
28

LOOP INNER CMP SWAP,1 JNZ SORT MOV AH,4CH INT 21H CSEG ENDS END START

第 7 章:子程序设计 1、主程序和所调用的子程序在同一代码段中,子程序的属性应定义为( C )。 DX A.TYPE B.WORD C.NEAR D.FAR 2、 MOV AL,38H MOV BL,49H CALL SUBO INC AL DEC CL ┇ SUBO PROC ADD AL,BL MOV CL,AL DAA RET SUBO ENDP 上 述 程 序 段 运 行 后 , AL=________88H _____________ , CL=________80H __________。 CXFX 3、FACT PROC PUSH DX MOV DX,AX CMP AX,0 JZ DONE DEC AX CALL FACT MUL DX POP DX RET DONE:MOV AX,1 POP DX RET FACT ENDP 若执行以上子程序前,(AX)=5,则子程序完成的功能是: 求 5!(或求 5 的阶 乘) ,执行该子程序后(AX)= 120 。 CXFX 4、在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。 (占 内存空间大,但速度快) 。 DX
29

5、设在 DAT 单元存放一个-9~+9 的字节数据,在 SQRTAB 数据区中存放了 0~9 的平方值,请用直接查表法编写一个子程序,在 SQRTAB 中查找出 DAT 单元中数据对应 的平方值送 SQR 单元。并写出主程序的调用方式。 CX 数据段如下: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS 答: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,?,81 SQR DB? DATA EMDS STACL1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX ┇ CALL SUBROT ┇ MOV AH,4CH INT 21H SUBROT PROC PUSH AX PUSH BX LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT NEG AL NEXT: XLAT SQRTAB MOV SQR,AL POP BX POP AX RET SUBROT ENDP CODE ENDS END SRART 6、设在内存单元 SQTAB 首址开始存放了 0~15 的平方数表。要求用直接查表法
30

编一程序,求出 A 单元中给定数(<=15=的平方值送 B 单元保存。 BC 答: DATA SEGMENT SQTAB DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,225 A DB 12 B DB? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DX XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,OFFSET SQTAB MOV AL,A XLAT MOV B,AL RET START ENDP CODE ENDS END START 7、FUNCTION MACRO P1,P2,P3 MOV AX,P1 P2 P3 ENDM 请回答下列问题: ⑴上面程序段中,MACRO 和 ENDM 是一对伪指令,在 宏 定义中,它们成对 出现。 ⑵通过调用语句 FUNCTION 100,SUB,AX 调用之后,AX 寄存器中的内容为 99 。 CXFX

31


相关文章:
汇编语言_期末考试_试题
汇编语言_期末考试_试题_教育学_高等教育_教育专区。紫映东方快印中心 A/C ...“微机原理与汇编语言”... 14页 免费 汇编语言试题 6页 1下载券 2010年...
汇编语言期末考试试题及答案
汇编语言期末考试试题及答案_工学_高等教育_教育专区。汇编语言期末考试试题及答案,大合师的注意了,上面全是期末考试题,出卷老师给的!!!...
汇编语言期末复习题
汇编语言期末复习题第 1 章:基础知识 1、在汇编语言程序的开发过程中使用宏...笑话大全爆笑版 幽默笑话大全 全球冷笑话精选 67份文档 九妖笑话 2014年笑话大全...
汇编语言期末复习资料
汇编语言期末复习资料_教育学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档 汇编语言期末复习资料_教育学_高等教育_教育专区。汇编语言期末复习资料...
网工汇编语言期末总复习资料大全
网工汇编语言期末总复习资料大全_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档 网工汇编语言期末总复习资料大全_理学_高等教育_教育专区。...
汇编语言期末复习题大全
20页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 汇编语言期末复习题大全 隐藏>> 汇编语言期末复习题 DX:单项选...
汇编语言期末复习题大全
汇编语言期末复习题大全_IT/计算机_专业资料。汇编语言期末复习题 DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释 v JD:简答题 CXFX:程序分析题 CXTK:...
汇编语言期末试题_免费下载
汇编语言期末考试试题及答... 12页 20财富值喜欢此文档的还喜欢 汇编语言考试复习题及答案 8页 免费 汇编语言试题及答案 3页 2财富值 大地网接地电阻测试仪说明...
1.汇编语言期末复习题
汇编语言期末试题 2页 免费喜欢此文档的还喜欢 汇编语言期末复习题大全... 31...汇编语言期末复习题一、单项选择题 1、下列数中最大的数是( C ) A、 (...
IBM-PC汇编语言期末总复习资料大全(免费)
IBM-PC汇编语言期末总复习资料大全(免费)_理学_高等教育_教育专区。IBM-PC汇编语言期末总复习资料大全(免费) 清华大学出版社 上海电力学院 国际交流学院 200905W1 ...
更多相关标签: