ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:54.79KB ,
资源ID:6944731      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6944731.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编复习题 仅供参考1.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编复习题 仅供参考1.docx

1、汇编复习题 仅供参考1汇编语言复习题 一、选择题1. 下面关于汇编语言源程序的说法中正确的是 ( B )A. 必须要有堆栈段 B. 一个程序可以有多个代码段 C. 必须要有数据段 D. 只能有一个数据段2. 在汇编语言程序开发中,一般要按顺序经过( B )过程。 a. 用文字编辑程序编写源程序 b. 用连接程序LINK连接程序 .ASM. OBJ- . EXE c. 用MASM宏汇编程序,编译成目标程序 d. 用DEBUG程序调试程序 A. abcd B. acbd C. adcb D. adbc3. 汇编语言编译程序MASM.EXE(编译器)编译的对象是( C )文件。A. .EXE B.

2、.OBJ C. .ASM D. .DOC4. 汇编语言源程序经过MASM汇编后产生( C )文件。A. .EXE B. .ASM C. .OBJ D. .DOC5. DEBUG调试程序时查看内存单元内容的命令是( A )A. D B. R C. A D. E6. DEBUG调试程序时查看寄存器内容的命令是( B )A. D B. R C. U D. A 7. 8086CPU地址总线宽度为( C )位。 A、8 B、16 C、20 D、328. 8086CPU数据总线宽度为( B )位。 A、8 B、16 C、20 D、329. 1个CPU的寻址能力为32KB,那么它的地址总线宽度为( B )。

3、 A、13 B、15 C、18 D、32k10. 汇编语言源程序中定义段的伪指令是( D ) A. REPTENDM B. PROCENDP C. MACROENDM D. SEGMENTENDS 11. 汇编语言源程序中定义宏的伪指令是( C ) A. REPTENDM B. PROCENDP C. MACROENDM D. SEGMENTENDS 12. .对于下列程序段: AGAIN:MOV AL,SI MOV ES:DI,AL INC SI INC DI LOOP AGAIN 把 sI 中的内容传送给 ES:DI也可用( A )指令完成同样的功能。 A. REP MOVSB 串传送 B

4、. REP LODSB 从串取C. REP STOSB 存入串 D. REPE SCASB 串扫描13. 设SP初值为2000H,执行指令“ PUSH AX ”后,SP的值是( C )A. 1998H B. 1FFFH C. 1FFEH D. 2002H14. 设SP初值为2000H,执行指令“ POP BX ”后,SP的值是( D )A. 1998H B. 1FFFH C. 1FFEH D. 2002H15. 执行下列指令序列后,正确的结果是( A )MOV AL,81H al = 81hADD AL,AL al = 81h + 81h = 02h , cf = 1ADC AL,AL 02h

5、 + 02h + cf = 05h A. AL=05HB. AL=204HC. AL=04HD. AL=205H16. 下列指令被编译时会出错的是( D ) mul的操作数不能为立即数A. MUL BX B. MUL CL C. MUL DAT1 D. MUL 5617. 与MOV BX,OFFSET VAR指令完全等效的指令是(B )。 A、MOV BX,VAR B、LEA BX,VAR C、LDS BX,VAR D、MOV BX, SEG VAR18. 指令指针寄存器是( C )A. BP B. SP C. IP D. PSW 19. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是

6、( B )A. AX,BX,CX,DX B. BX,BP,SI,DI C. SP, IP, BP,DX D. CS,DS,ES,SS20. 下列数据段中:BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $ - BUF1 符号COUNT等价的值是( B )A. 6 B. 18 C. 16 D. 8 占用了18个字节,其中 2 DUP (1,2)占用了2 * 2= 4个字节,总共占用了3 * 6 = 18个字节21. 设数据段中已有: DA1 DB 12H,34H DA2 DW 56H,78H 下面有语法错误的语句是( C )A. MOV AL, DA1 B. M

7、OV WORD PTR DA1,AX C. MOV DA11,AX D. MOV BYTE PTR DA21,AL22. 指令 MOV BYTE PTR BX+SI , 00H 中目的操作数的寻址方式是 ( d ) A. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址 23. 指令 MOV ES: BX , AL 中目的操作数的寻址方式是 ( c ) A. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址 24. 条件转移指令JB产生程序转移的条件是( A ) A. CF=1 B. CF=0 C. CF=1和ZF=1 D. CF=1和ZF=025、若执

8、行SAL SI,CL后能将SI的内容乘以8,则(CL) ( B ) A、2 B、3 C、4 D、8 26. 编辑汇编语言源程序时,对于注释语句必须用英文输入法中的( B )来标示。A. : B. ; C. , D. .27. 将AL高4位清0,应执行的指令是( B ) A. AND AL,0F0H B. AND AL,0FH C. OR AL,0FH D. TEST AL,0FH28. 若程序中定义了26B的数据段data,那么程序载入内存,该 data段实际占用的内存空间是( C )。 16的倍数A、 16 B B、26 B C、 32 B D、 64KB29.在8086CPU系统中一个段的

9、容量最小为( A )。 A、16B B、64KB C、512KB D、1KB有数据时最小为16B,没数据时最小为030. 下列地址信息与0020H:03EFH确定的内存地址不同的是( B )。 A、 5EFH B、 203H:00EFH C、 005EH:000FH D、 0002H:05CFH A C D 对应的物理地址都是5EFH二、填空题1、完成下列数制转换:11101010B= D = H2. 在存储器分段管理中,物理地址需要_2_个16位寄存器来存储。3. 对于指令FEES DW 100 DUP(0)LENGTH= 100 ,SIZE= 200B 。4. 设DS=2000H,BX=1

10、256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?(1)JMP BX ; I P=_1256h_(2)JMP TABLEBX ; IP_3280H_5. 设(DS)=2000H, 有下列数据段,请用十六进制写出下列各字节单元的内容:ORG 2100H 想知道org 是什么?XX一下TABLE DB 10, 3*5, 10H 占三个字节ADDRESS DD TABLE DD占四个字节,地址为2000h:2100hARRAY DW 2 DUP(3827H, ?) 占4个字,8个字节(1) (2100H)=_10_ (2) (2103

11、H)=_00_ (3) (2106H)=_20H_ (4) (210CH)=_38H_ 这里的DS=14F8H ,(2106H)=14 题目DS=2000H ,所以 (2106H)=206. 已知X= -38D,Y= -64D,则 X-Y补=_1AH _(结果用十六进制表示)7、设 (DS)=2000H, (ES)=3000H,(SS)=4000H,(BX)=1000H, (BP)=1000H, (SI)=0001H,(DI)=0002H,(21000H)=1234H, (21002H)=5678H,(31000H)=9ABCH, (31002H)=0DEF0H,(41000H)=3456H,

12、(41002H)=789AH计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。 (1) MOV AX, ES:1000H ; 物理地址PA= (2) MOV AX,BP ; 物理地址PA= (3) MOV AX, BXSI 物理地址PA= (AX)= 8计算机中8位二进制有符号数(含一位符号位)的补码表示范围是 128127 9. 若机器进行有符号数运算,执行指令:MOV AL,0F0H ADD AL,78H 则ADD指令执行后:(CF)= 1 ,(OF)= 0 想知道结果也可以调试一下看看 10. 8086CPU允许有 256 个中断源,其中定时器中断的中断类型号为 08

13、H ,在中断向量表中N类型对应中断向量的地址为 N 4 。三、判断下列指令的正误1、MUL AL,BL ( N ) 只有一个操作数2、MOV CS, BX ( n )3、PUSH AL ( N ) PUSH和POP操作都是以字为单位4、SHL AX,CX ( N ) 以为次数要放在cl中5、MOV AH,BYTE PTR SIDI ( N) SIDI两个都为变址寄存器6、 OUT 03FCH, AX ( N )03FCH超过了255,必须用间接寻址,这里间接寻址的寄存器要用DX,Mov dx,03fchOut dx,ax7、 SUB AX,BX ( y )8、 AND AL, 0FH ( y

14、)9、 MOV SI,DI ( n ) 两个操作数不能同时为存储器10、 MOV BX, 0FFH ( n )11、 MUL 0AH ( n )12、 CALL FAR PTR S ( y )13、 ADD DS, AX ( n )段寄存器不可以用在算术指令中14、 ADD AL,100H ( n )类型不一致15、 MOV BX, BX ( y )16、 INT 1000H ( n )17、 JMP SHORT PTR S ( n )18、 0R AL, 0FFFH ( n ) 19、 CALL BX ( y )20、 IN 03H, AX ( n ) 四、程序分析题1. 阅读下面程序段,回

15、答问题。 A DB 0F8H B DB 3DUP(?)LEA DI,BMOV CX,3MOV AL,ALOP: SAR AL,1 MOV DI,AL INC DI LOOP LOP 上述程序段运行后,从B单元开始依次存放的数据是多少?FCFE FFF8H=1111 1000 右移一位变为 1111 1100 = FC再右移一位变为 1111 1110 = FE再右移一位变为 1111 1111 = FF调试结果:2、分析下面程序段的功能DATA SEGMENTS9 DB 0,1,2,3,4,5,6,7,8,9DATA ENDSLEA SI,S9LEA DI,S9+1MOV CX,5LOP: M

16、OV AL,SIXCHG AL,DIMOV SI,ALADD SI,2ADD DI,2LOOP LOP上述程序段运行后,S9开始的10个字节存储单元内容是什么?01 00 03 02 05 04 07 06 09 083、已知BUF开始的数据区中存放有10个大、小写字母,分析下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUF K2:MOV AL,BX CMP AL,Z JBE K1 SUB AL,20H (20H=32,大小写字母相差32) MOV BX,AL K1:INC BX LOOP K2 实现功能:把小写字母变为大写字母4. 分析下面程序段完成的功能是什么? ;(D

17、X:AX)联合存放了一个32位数据MOV CL, 4SHL DX, CL DL=*0000MOV BL, AHSHL AX, CL AL=*0000SHR BL, CL BL即AH的内容,AH=0000*,四个星号为原来AX的高四位OR DL, BL 功能:把ax的高四位写入到 dx 的低四位5、分析下面程序段完成的功能是什么? MOV CX,10LOP1:MOV AH,1 INT 21H PUSH AX LOOP LOP1 MOV CX,10LOP2: POP DX MOV AH,2 INT 21H LOOP LOP2 功能:把输入的字符逆向输出6、以下是二进制数(bx)到十六进制数转换并显

18、示程序的源文件BINIHEX.ASM,阅读并完成该程序。 START : MOV CH, 4 bx为16位,bx要循环4次,用ch来计次数ROTATE: mov cl,4 ROL BX, CL MOV AL, BL bx循环左移后,原来的高四位变为低四位,把bl 的 值送给al, 以免后面的操作影响bx 的值 And al, 0fh 与0fh 相与,只保留低四位 ADD AL, 30H 转换为 ASII 码 CMP AL, 3AH ASII码大于 3Ah 则al 的值大于 9,若小于3Ah,直接输出 JL PRINTIT Add al,07h ASII码大于3Ah , A的ASII码为41h,

19、 所以要加上7,可以输出相应的ABCD.PRINTIT : MOV DL, AL Mov ah, 02h INT 21H Dec ch JNZ ROTATE ch为零时跳出循环MOV AH, 4CHINT 21H7、以下是子程序BCDIASC,请阅读程序并完成填空。;功能:将十进制的两位数的BCD码转换为ASCII码并在屏幕中间显示.;参数:(AL)= 十进制的两位数的BCD码,无出口参数BCDIASC : MOV AH, AL MOV CL, 4 shr ah, cl ;将AH的高4位移至低4位 And al, 0fh ;保留AL的低4位 ADD AH, 30H ;转变为ASCII码 Add

20、 al, 30h MOV BX,0B800H Mov es , bx MOV BYTE PTR ES:160*12+40*2 ,AH ;显示十位数 MOV BYTE PTR ES:160*12+40*2+2 ,AL ;显示个位数 ret ;子程序结束,返回主程序8. 下面程序通过子程序调用,将数据段中字数组ARRAY的COUNT个元素求和,并将结果送SUM单元(COUNT、SUM都是字单元),分析这段程序后补充完整程序中的空格部分。MOV BX, OFFSET SUMPUSH BXMOV BX, OFFSET ARRAYPUSH BXMOV BX, OFFSET COUNTPUSH BXCAL

21、L SUMPRO ;调用子程序计算.SUMPRO PROC NEARPUSH AXPUSH CXPUSH SIPUSH DIPUSH BPMOV BP, SPMOV SI, BP+ 14 MOV DI, BP+12 MOV CX, DIMOV DI, BP+ 16 XOR AX, AXNEXT : ADD AX, SILOOP NEXTMOV DI , AX POP BP POP DIPOP SIPOP CXPOP AXRET SUMPRO ENDP 请画出用堆栈传送参数地址时,堆栈最满时的状态。五、编程题1、从BUF1单元开始存放有10个字节的字符串,使用串传送指令编写指令序列将BUF1中的

22、数据复制到BUF2开始的10个字节单元。 lea si,BUF1 ;si的段地址为dslea di,BUF2 ;di的段地址为es mov cx,10 cld rep movsb 2、编写指令序列,完成用空格符(20H)清除某一字符区的工作,字符区首地址为ARRAY,其长度为COUNT,ARRAY和COUNT均为字节存储单元。 lea si,ARRAY mov al,20h mov cx,10 cld rep stosb3编写一个显示字符串的宏定义PRINT, 字符串以”$”作为结束符号,字符串首地址STRADDR为变元。 PRINT macro STRADDR lea dx,STRADDR

23、mov ah,09h int 21h endm4、编写子程序CLEAR实现清除屏幕的功能。(课件第九章有) mov ah,06h mov al,0 mov bh,70h mov ch,0 mov cl,0 mov dh,24 mov dl,79 int 10h 5、编写指令把12行0列到22行79列的屏面清除。 mov ah,06h mov al,0 mov bh,70h mov ch,12 mov cl,0 mov dh,22 mov dl,79 int 10h6. 写出采用位触发方式控制发声的子程序SOUND.参数: BX:发声频率,控制脉宽 CX: 发声时间,控制音长。 Mov bx,1

24、00 In al,61h And al,11111100b sound:xor al,2 Out 61h,al Mov cx,140hWait:loop waitDec bxJnz sound 7、 已知在内存数据段中GRA开始单元连续存放着10个学生的成绩,试编程实现以下功能:计算平均成绩(只取整数部分)存放在内存单元AVG中。DSG SEGMENTGRA DB 90,58,70,80,68,98,66,83,96,72AVG DB ?DSG ENDS mov ax,DSG mov ds,ax mov dx,0 mov cx,10 lea si,GRA next:mov al,si cbw

25、add dx,ax inc si loop next mov ax,dx mov bl,10 div bl mov avg,al mov ah,4ch int 21h8、已知在内存数据段中STR开始单元连续存放着10个大小写字母,试编程实现以下功能:将10个字母中的小写字母全部转换为大写字母。DSG SEGMENTSTR DB “BbcDeFgHIj”DSG ENDS mov ax,DSG mov ds,ax lea si,STR next:mov al,si cmp al,Z jbe exit sub al,20h mov si,al exit:inc si loop next mov ah,4ch int 21h

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1