汇编语言程序设计实例计

Intel 汇编语言程序设计(第五版) pdf格式
为鼓励上传资源,我们采用积分下载方式,希望您能发布更多更好的资源互相分享
1.上传软件或电子书,源码,资料等,审核后即获2积分;如发布时设了下载需积分,其他用户下载后你将获得相应积分
2.当您首次注册时,可以获送10个下载积分,供您下载资源和熟悉网站下载的使用
3.发现资源有误或其他问题,通过举报按钮反馈后我们将奖励积分
4.您可以在论坛通过发帖等方式获取
5.参加本站可以在有效期内不限次数下载
6.您也(1元=10积分)或
7.我们会不定期举办各种活动,参加活动可以获取积分,请关注下载频道首页公告。
您可能遇到这些“伪问题”:
1.资料无法解压:
请确保所有分卷均下载完毕,如果有未知后缀文件,请搜索相应解压软件;
2.chm文件无内容:
您的电脑锁定了这一文件,请右击文件属性,点击右下方“解除锁定”,关闭文件后再打开;
3.下载不下来:
请尝试重新下载(重新下载不扣积分);
4.杀毒软件报毒:
黑客安全及破解类软件容易报毒,但可正常使用,如担心安全请谨慎使用。
本书全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用C/C++等最新编译器与汇编的混合接口;从16位实模式下B、DOS实模式文本及图形程序设计到32位保护模式的Windows程序设计;从磁盘基础知识到Intel指令编码、浮点运算等相关知识都做了深入而细致的讲解。
本书对计算机体系结构及基本原理做了相当篇幅的介绍,因此本书不仅可作为高等院校计算机专业汇编语言的教材,也可以作为计算机体系结构和原理的参考资料。
第1章 基本概念
1.1 欢迎来到汇编语言的世界
1.1.1一些精彩的提问
1.1.2汇编语言应用程序
1.1.3本节习题
1.2 的概念
1.2.1 PC汇编编译器的历史
1.2.2本节习题
1.3 数据的表示方法
1.3.1二进制数
l-3.2 二进制加法
1.3.3整数存储的尺寸
1.3.4十六进制整数
1-3.5 有符号整数
1.3.6字符的存储
您对本软件有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力
下载地址:
您正在下载:Intel 汇编语言程序设计(第五版) pdf格式
热门最新推荐
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书inter汇编语言程序设计 - 编程练习3.8 - 简书
inter汇编语言程序设计 - 编程练习3.8
三个整数相减:
参考3.2节中的AddSub程序,编写三个16位整数相减的程序,程序中需要使用寄存器即可,插入调用DumpRegs函数语句,以显示寄存器的值
INCLUDE Irvine32.inc
mov eax,5000h
sub eax,1000h
sub eax,2000h
call DumpRegs
数据定义:
写一个程序,要求包含3.4节中列出的所有数据类型的定义,用适合的值初始化每个变量
INCLUDE Irvine32.inc
整数符号常量:
写一个程序,定义对应一周内每天的符号常量,创建一个数组变量并使用这些符号作为初始值
INCLUDE Irvine32.inc
Day1 = 'Monday'
Day2 = 'Tuesday'
Day3 = 'Wednesday'
Day4 = 'Thursday'
Day5 = 'Friday'
Day6 = 'Saturday'
Day7 = 'Sunday'
list BYTE Day1,Day2,Day3,Day4,Day5,Day6,Day7
文本符号常量:
写一个程序为几个字符串(引号括起的字符)定义符号名。在变量定义中分别使用每个符号
INCLUDE Irvine32.inc
&'hello',0&
text2 TEXTEQU
&'hello2',0&
BYTE text1
BYTE text2
github:/Cichar
一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于隔离 : 分为 虚拟地址空间 和 物理地址空间 分段 : 把一段程序所需要的内存空间大小映射到某个地址空间 分页 : 把地址空间人为地等分成固定大小的页,每一页...
第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。 语句(statement)是为了完成某种任务而进行的操作,比如下面就是一行赋值语句: 这条语句先用var命令,声...
版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢。 第2章 C 语言基本概念 2.1. 字符串字面量(String Literal) 字符串字面量是用一对双引号包围的一系列字符。 2.2. 把换行符加入到字符...
2016年国庆假期终于把此书过完,整理笔记和体会于此。 关于书名 书名源于俄罗斯的演员斯坦尼斯拉夫斯基创作的《演员的自我修养》,作者为了写这本书前前后后修改了三十年之久,临终前才同意不在修改,拿去出版。使用这个书名一方面书单内容的确不是介绍一门新的编程语言或是展示一些实用的...
关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文档开发的软件, 应该使用最新的操作系统软件进行测试。 Swift 开发软件是极其出色的, 不管是为了手机, 桌面, 服务器还是其他什么。它是一门安全, 快速和交...
猩红的烈焰在空中跳跃,黑吞噬茫茫星空,似一层保护色,妄想遮盖一切。
生活中会遇见各种奇葩的人际关系,不知道该怎么去处理,也不知道自己怎样做才是比较符合礼仪的。 千人千面,所以每个人都有自己的处理方式,有句话叫我不赞同你的观点但是我誓死捍卫你说话的权利。就我而言,既然四五年都不联系,一点音讯都没有,平时发个动态连个点赞之交都算不上我想那真是以...
记忆的深处是什么?或许是抵达了头部的宽度,却怎么也到不了其深度吧。又或悲或喜,或离或合,或因情绪带动的爱或恨。 听过一故事,倒让人记忆深刻,至少让我难以忘怀,以至久久无法平静。 小A是个单亲母亲,孩子在六岁的时候,因自己加班,出去后便再也找不到了。想想自己怎么把孩子弄丟了呢...
1、一双完美运动鞋的关键是舒适。舒适会减少水疱和其他皮肤问题的发生。 2、透气性也很重要,让脚呼吸透气,鞋垫有弹性可吸汗,鞋后跟则要注意坚固稳定。选购运动鞋时,应着运动袜试穿,脚趾前端预留空间,鞋子长度比脚长2~3公分较适合。新鞋穿久会比旧鞋宽松,脚趾与鞋头预留空间,可避免...
高温的天气,躺在床上,什么都不想干。儿子还在墨迹作业,,为什么道理我都能自己捋清了就是行动不起来呢?总是在第二天醒来的时候退缩!这还是我么!又或许我一直都是如此的,只是以前自己没有发现倪端而已?不是富二代,也没有自己折腾成富一代,甚至于在七个多月的时间挣得钱只够我和孩子凑合...当前位置: >>
汇编语言程序设计复习参考
汇编复习试题 仅供参考 全盘照抄出错后果自负) 汇编复习试题(仅供参考,全盘照抄出错后果自负 复习试题 仅供参考,1. 简答题 设 A=186,B=273Q,C=0BBH,它们之间的关系是(D)@B=C=187 A.A&B&C B.A&B&C C.A=B=C D.A&B=C
的存贮器组织是将存储器划分为段,可作为段的起始地址是(B)@16 倍数 A.185A2H B.00020H C.01004H D.0AB568H 下列指令执行后,能影响标志位的指令是( B ) A.PUSHF@把标志寄存器的内容压入堆栈 B.POPF@把当前堆栈顶的一个字传到标志寄存器 C.JNLE OPR @条件转移指令 D.LOOPE LOP@使寄存器 cx-1,如果结果不为 0 则 lop,否则顺序执行后面的. 循环控制指令 LOOPNZ/LOOPNE 继续执行循环的条件是( B ) A.CX≠0 且 ZF=1 B.CX≠0 且 ZF=0 ≠ C.CX≠0 或 ZF=1 D.CX≠0 或 ZF=0 设 VARl 和 VAR2 是已定义的变量名,非法的表达式是( B ) A.VARl-VAR2 B.VAR2-VARl[BX] C.VARl+VAR2 D.VARl[BX] 设 NUM=B, 指令 MOV AX, NUM SHL 3 执行后 AX 中的值是 ( A ) A.B B.1l011000B C.B D.B
存储器分段,每个段不超过( ) A.64K 个字 B.32K 个字节 C.64K 个字节 D.1 兆个字节 若 AX=-15 要得到 AX=15 应执行的指令是( ) A.NEG AX B.NOT AX C.INC AX D.DEC AX
系统执行传送指令 MOV( A ) B.影响 DF 方向标志 A.不影响标志位 不影响标志位 C.影响 SF 符号标志 D.影响 CF 进位标志 下列指令中操作数在代码段中的是( A ) A.MOV AL,42H B.ADD AL,BL , C.SUB [BX],DI D.INC [DI] 表示过程定义 过程定义结束的伪指令是( A ) 过程定义 A.ENDP B.ENDS@段结束 C.END@源程序结束 D.ENDM 条件转换指令 JNBE 产生转换的条件是( A ) B.CF=0 AND ZF=1 A.CF=0 AND ZF=0 C.CF=1 AND ZF=0 D.CF=1 AND ZF=l 设(SS)=338AH,(SP)=450H,执行 PUSH BX,和 PUSHF 两条指令后,堆栈顶部的物 理地址是( A )2.3.4.5.6.7.8.9.10.11.12.13. 14.15.16.17.18.19.20.21.22.23.24.25.A.33CECH B.33CF2H C.33CF4H D.33CE8H 要输入端口 1234H 中的 8 位数据,其指令应是( B ) A.MOV DX,1234H B.MOV DX,1234H OUT DX,AL IN AL,DX C.IN AX,1234H D.OUT DX,1234H 标志寄存器中属于控制标志位 控制标志位的是( B )@其余 6 个为状态标志位 控制标志位 A.DF,OF,SF B.DF,IF,TF , , C.OF,CF,PF D.AF,OF,SF 用一条指令实现将寄存器 BX 和 SI 中的内容相加,结果送入 AX 中,这条指令是 ( D ) A.ADD AX,[SI][BX] B.MOV AX,[BX+SI] C.AND AX,[BX+SI] D.LEA AX,[BX][SI] 已知 AX,BX 中均为带符号数,当进行字相除时,下面指令或指令序列正确的是 ( B ) A.DIV BX B.CWD IDIV BX C.XOR DX,DX D.CBW DIV BX IDIV BX 下列有语法错误的语句是( A ) A.DB 1234H B.DW 4567H C.DD ′AB′,′CD′ D.DB ′ABCD′ 下列寄存器组中在存储器操作数寻址时可用于提供偏移地址的是( B ) A.AX,BX,CX,DX B.SP,BP,SI,DI C.CS,ES,DS,SS D.BX,BP,SI,DI 某存储单元的段地址是 0AB90H,偏移地址是 1234H,该存储单元的物理地址是 ( B )@AB900+1234 A.0BDC4H B.0ACB34H C.0AD134H D.1CED0H 执行 NEG 指令时,要设置标志位 CF.设置 CF 的正确说法是( C ) @NEG 0 时,CF=0,否则为 1 A.对正数求补时,CF 置 0 B.对负数求补时,CF 置 0 C.对全 0 数据求补时,CF 置 0 D.对非零数据求补时,CF 置 0 对全 数据求补时, 设 DF=1,每次执行 CMPSW 指令时,SI 和 DI 均要分别( D ) A.减 1 B.减 2 C.加 1 D.加 2 要使 BL 中的低四位变反,高四位不变,应执行指令(D ) A.NOT BL B.OR BL,0FH C.AND BL,0FH D.XOR BL,0FH 设(AL)=07H,要使(AL)=-07H 应执行的指令是( B ) A.OR AL,80H B.NOT AL C.NEG AL D.ADD AL,80H 在
的立即数寻址 立即数寻址方式中,下列说法正确的是( D ) 立即数寻址 A.使用 AX,BX,CX,DX B.使用 SI,DI,BP,SP 26.27.28.29.30.31.32.33.34.35.36.C.使用任一个通用寄存器 D.不使用任何寄存器 下列指令执行时操作数在数据段的是( D ) A.MOV AX,32768H B.ADD AL,AH C.NEG BX D.INC [DI] 下述指令执行后,AL 的值是( A ) MOV AL,-1 NEG AL XOR AL,65 A.01H B.40H C.61H D.64H 设 SP=4AH,执行段内返回指令 RET 4 后,SP 的值是( D ) A.44H B.48H C.4CH D.50H 在查错程序 DEBUG 中,为查看或修改内存单元的内容使用的是(A) @偏移地址 A.逻辑地址 B.物理地址 逻辑地址 C.逻辑地址或物理地址 D.由用户指定选择逻辑地址或物理地址 设 NUM=60H,表达式: (NUM LT 60H AND 30)OR(NUM GE 60H AND 40)的值是(A ) B.3EH A.0 C.40 D.0FFFFH 指令 MOV CL,55H XOR 0F0H 执行后 CL 中的值是( C ) A.05H B.50H C.0A5H D.0F5H 下面语句中能和指令 MOV AX,NOT 0FH 等效的是( C ) A.MOV AX,0FFFFH B.MOV AX,0FH C.MOV AX,0FFF0H D.MOV AX,0F0FFH , 对 CS 段寄存器赋段地址的方法是( A ) A.MOV AX,CODE B.ASSUME CS:CODE MOV CS,AX C.END 起始地址 D.MOV CS,2050H 有数据定义 BUF DB 8DUP(3 DUP(2) DUP(3),在 BUF 中能构成数据 0302H ,2 ) 有( C ) A.5 个 B.6 个 C.7 个 D.8 个 下面指令执行后 BX 的内容是( D ) X DW BH Y DB 7EH,8DH ┇ MOV BH,TYPE X MOV BL,TYPE Y A.0102H B.0101H C.1234H D.0201H 下面有语法错误的指令是( B )@不包括段寄存器 cs,不能同时是存储单元,不 能有立即数 37.38.39.40.41.42.43.44. (45.46.47.A.XCHG AX,[BX] B.XCHG AX,DS , C.XCHG AX,SI D.XCHG AX,BP 条件转移指令 JBE 产生转移的条件是( D ) A.CF=0 OR ZF=0 B.CF=0 OR ZF=1 C.CF=1 OR ZF=0 D.CF=1 OR ZF=1 下述程序段产生分支的条件是 ( A ) @异或: 相同为 0, 相异为 1, 执行后 CF=0,OF=0. JZ 转移条件:ZF=1 XOR AX, 426H JZ DONE A.执行前 AX=426H B.执行前 AX≠426H 执行前 C.执行前 AX=全 0 D.执行前 AX=全 1 CPU 要访问的某一存储单元的实际地址称( C ) A.段地址 B.偏移地址 C.物理地址 D.逻辑地址 . 某存储单元的物理地址是 12345H,可以作为它的段地址有( D ) A.2345H B.12345H C.12340H D.1234H . 执行后使 BX=0 的同时也使 CF=0,OF=0 的指令是( A ) A.XOR BX,BX B.OR BX,BX . , C.AND BX,BX D.CMP BX,BX AND,OR,XOR,NOT 为四条逻辑运算指令,下面的解释正确的是( C ) A.指令 XOR AX,AX 执行后,AX 内容不变,但设置了标志位 B.指令 OR DX,1000H 执行后,将 DX 最高位置 1,其余各位置 0 @高四位 C.指令 AND AX,0FH 执行后,分离出 AL 低四位 执行后, . , D.NOT AX,执行后,将 AX 清 0 @取反 在执行下列指令时,需要使用段寄存器 DS 的指令是( D ) A.STOSW B.ADD AL,CL C.NEG BX D.INC DA[BX] 无论 BH 中原有的数是奇数或偶数,若要使 BH 中的数一定为奇数,应执行的指令是 B ) A.ADD BH,01H B.OR BH,01H . , C.XOR BH,01H D.TEST BH,01H 完成对 CL 寄存器的内容乘以 4 的正确操作是( A ) A.ROL CL,1 B.MUL 4 ROL CL,1 C.SHL CL,1 D.MOV CL,2 . , SHL CL,1 SHL CL,CL , 下面各传送指令中,正确的是(A) A.MOV [DI],[SI] B.MOV[DX+DI],AL . , C.MOV WORD PTR [BX],0100H D.MOV AL,BX 汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法( B ) A.名字的第一个字符可以是大写英文字母及小写英文字母 B.名字的第一个字符可以是字母,数字及?, ?,@ @不能以数字开头 .名字的第一个字符可以是字母,数字及?, C.名字的有效长度≤31 个字符 D.在名字中不允许出现$ 48. 要实现使 BETA 的值为 56,应采用语句为( C ) A.BETA DB 56 B.BETA DB 56H C.BETA EQU 56 D.BETA EQU 56H . 49. REPZ CMPSW 指令,重复执行的终止条件是( A ) A.CX=0 或 ZF=0 B.CX=0 且 ZF=0 . C.CX=0 或 ZF=1 D.CX=0 且 ZF=1 50. 下面程序段执行后,AL 中的内容是(B ) MOV AX,8833H ADD AL,AH DAA A.21 B.21H . C.0C1H D.0DDH 51. 比较两个带符号的数 A,B,当 A=B 时程序转移,测试的条件为( A ) B.ZF=0 A.ZF=1 . C.SF=1 D.SF=0 52. 检查二个无符号数的关系,若要实现 AL≥BL 时分支去 LOP1 处,那么在&CMP AL, BL&指令后应跟的分支指令是( A ) A.JNC LOP1 B.JA LOP1 . C.JC LOP1 D.JGE LOP1 53. 在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D ) A.STOSW B.LODSW C.SCASW D.CMPSW . 54. 设 AL=0AH,下列指令执行后能使 AL=05H 的是( A ) A.NOT AL B.AND AL,0FH . C.XOR AL,0FH D.OR AL,0FH 55. 已有数据定义及指令如下,指令执行后 AX 中的内容是( A ) DA1 DW'AB''CD''EF''GH' , , , ┇ MOV AX,DA1+3 A. EF' B. 'CD' . ' ' C. 'BC' D. 'FC' 56. 使用 DOS 系统功能调用时,使用的软中断指令是( D ) A.INT 21 B.INT 10H C.INT 16H D.INT 21H . 57. 为在一连续的存储单元中,依次存放数据 41H,42H,43H,44H,45H,46H,可选用 的数据定义语句是( B ) A.DB 41,42,43,44,45,46 B.DW H,4546H . , , C.DW 'AB','CD','EF' D.DW 'BA','DC','FE' 58. 在同一程序段中,定义下面伪指令,正确的是( D ) A.PORT EQU AL B.CONT EQU 3500H AND OFFH PORT EQU 2000H C.STRl DD 'ABCD' D.STR2 DW 'ABCD' . 59. 下述语句执行后 AX 中的值是( C ) DA2 DB 'AB','CD' ┇ MOV AX,WORD PTR DA2+1 A.'AD' B.'BC' C.'DA' D.'CB' . 60. 下列数据定义语句中可实现留空 20H 个字节存储单元的是( D ) A.DB 20 DUP(?) B.DW 20H DUP(?) C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?) . 61. 为使 ADR1+2 字存储单元中内容为 0030H,下述方框中应选用的语句是( D DATA SEGMENT)62.63.64.65.66.67.68.VAR1 DB 12H,34H VAR2 DB 10H DUP(O) ADR1 DW VAR1,VAR2 DATA ENDS A.ORG 30H B.DB 2EH DUP(0) C.DB 30H DUP(0) D.ORG $+30H . 如某存储器分段时,表示偏移地址是 17 位二进制代码,那么一个段最多的存储单元数 是( B ) A.32K 字节 B.32K 字 . C.64K 字节 D.64K 字 下列寄存器中用来指示堆栈中任意数据区的偏移地址的是( B ) A.BX B.BP . C.SI D.DI 下列指令中有语法错误的是( C ) A.PUSH AX B.PUSH [20H+SI+BX] C.POP CS D.PUSH CS . 下面有语法错误的指令是( A ) A.LDS BL,VAR[SI] B.LEA BX,VAR[SI] . , C.LES DI,VAR[BX] D.LEA DI,VAR[BP] 执行 PUSH BP 指令时,目的操作数的物理地址表达式是( D ) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP . 把 BL 中的数据输出到端口 8CH 中正确指令是( C ) A.OUT 8CH,BL B.IN 8CH,BL C.MOV AL,BL D.MOV AL,BL . , OUT 8CH,AL IN 8CH,AL , 结果为零的条件转移指令,其测试条件是( A ) B.ZF=0 A.ZF=1 . C.SF=l D.SF=0 69. 下面程序段完成测试 DA-BYTE 字节单元中数是否为负数,若是则将全 l 送 DH 中,否 则全 0 送 DH 中,那么程序段中方框里应填的语句是 MOV CH,0 TEST DA-BYTE,80H MOV CH,0FFH ZERO:MOV DH,CH( B ) A.JNZ ZERO B.JS ZERO . C.JZ ZERO D.JC ZERO 汇编源程序时,出现语法错误的语句是( C ) A.MOV [BX+SI],BX B.MOV CL,[BP+DI] C.MOV CS,AX . , D.MOV DS,AX 设 SP 初值为 3050H,执行指令 PUSH BX 后,SP 的值是( B ) A.304FH B.304EH . C.3048H D.3049H 下列指令执行后影响 CF 值的是( D ) A.DEC B.XCHG C.LEA D.SHL 串操作指令中,每次操作后使 SI/DI 为减量应设置( C ) A.DF=0 B.TF=1 C.DF=1 D.TF=0 . 设 AL=57H,BL=24H,执行指令 SUB AL,BL 后,寄存器内容为( B ) A.AL=57H,BL=24H B.AL=33H,BL=24H . , C.AL=57H,BL=33H D.AL=33H,BL=0 设 CL=8,AL=0C8H,执行 SAR AL,CL 后,AL 中的数据是( C ) A.0FFH B.80H C.00H D.0FEH . 已知 BX=028AH,SI=0294H,(DS:051EH)=5432H.执行语句 LEA BX,[BX+SI]后, BX 中的内容是( C ) A.051EH B.5423H C.1E05H D.3254H . 已知某操作数的物理地址是 2117AH,则它的段地址和偏移地址可能是( A ). A.A B.2108:00EA : C.A D.A 某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是( C ) 字节. A.2K B.4K C.8K D.16K 以寄存器 DI 间接寻址的存储器字节单元内容加 1 的指令是( C ). A.INC [DI] B.INC DI C.INC BYTE PTR[DI] D.ADD [DI] ,1 [ ] 有语句:COUNT EQU 256,下列四种叙述中,正确的是( C ). A.COUNT 是变量 B.COUNT 占用一个字节存储单元70.71.72.73.74.75.76.77.78.79.80. 81.82.83.84.85.86.87.88.89.90.91.92.C.COUNT 是符号常数 D.COUNT 占用二个字节存储单元 下面指令中,源操作数的寻址方式为立即寻址的是( A ). B.MOV AX,A A.MOV AX,OFFSET A , C.MOV AX,A+1 D.MOV AX,A[BX] 已知 SP=2110H,执行 POP AX 后,SP 寄存器的值是( B). A.2111H B.2112H C.210FH D.210EH 将 AX 中有符号数除以 2 的正确指令是( B ). A.SHR AX,1 B.SAR AX,1 , C.ROR AX,1 D.RCR AX,1 比较 BX 和 SI 中的两个存储器地址,若 BX≥SI 转向 HIGH 的正确指令是( A ). A.JAE HIGH B.JBE HIGH C.JEG HIGH D.JLE HIGH 指令 SCASB 操作数的段地址一定在( B )寄存器中. A.CS B.DS C.ES D.SS 有数据定义语句 BUF DW 0ABH,1,10 DUP(3 DUP(1,0),2)汇编后,为变量 BUF 分 配的存储单元字节数是( C ). A.48H B.90H C.120 D.60 下列指令执行后,不改变 AL 寄存器内容的指令是( B ). A.AND AL,1 B.CMP AL,DL , C.XOR AL,AL D.SUB AL,DL 执行 1 号 DOS 系统功能调用,从键盘输入的字符值存放在( A )寄存器中. A.AL B.BL C.CL D.DL 执行下面指令语句,则 AX=(C ). MOV AL,95H CBW A.0095H B.0F95H C.0FF95H D.9095H 将 DX,AX 中 32 位数左移一位的指令序列是( A ). A.SHL AX,1 B. RCL AX,1 , RCL DX,1 SHL DX,1 , C.SHL AX,1 D.RCL AX,1 SHL DX,1 RCL DX,1 将 CX 寄存器低 4 位清零的正确指令是( B ). A.AND CX,0F0H B.AND CX,0FFF0H , C.AND CX,1110H D.MOV CX,0 判断 AX 和 BX 是否同时为偶数或同时为奇数. 若是转 YES 的正确指令序列是( B). A.OR AX,BX B.XOR AX,BX , AND AX,1 AND AX,1 , JE YES JE YES C.CMP AX,BX D.SUB AX,BX AND AX,1 AND AX,1 JE YES JE YES 93. 当执行 ADD AX,BX 指令后,若 AX 的内容为 4E52H 时,设置的奇偶标志位 PF=0, 下面的叙述正确的是( D ) A.表示结果中含 1 的个数是奇数 B.表示结果中含 1 的个数是偶数 C.表示该数是奇数 D.表示结果中低 8 位中含 1 的个数是奇数 表示结果中低 94. 设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H.如从地址 21001H 中取出一 个字的内容是( D ) A.2030H B.3040H C.3020H D.4030H 95. 转移指令 JMP NEAR PTR PROCA 的转移范围是( A ) A.8000H~7FFFH B.7FFFH~0FFFH ~ C.80H~7FH D.0FH~7FH 96. 设 CF=1,实现 AL 内容乘 2 的指令是( C ) A.RCL AL,1 B.SAR AL,1 D.ROR AL,1 C.SHL AL,1 , 97. 算术右移指令 SAR 和逻辑右移指令 SHR,两条指令执行结果完全相同的条件是 (A ) A.目的操作数最高位为 0 目的操作数最高位为 B.目的操作数最高位为 1 C.目的操作数为任意情况 D.无论什么情况都不可能完全相同 98. 没有语法错误的输入指令是( A ) A.IN AL,30H B.IN 30H,AL , C.IN DX,AL D.IN AL, [BX] 99. 与 LEA BX,BUF 指令完全等效的指令是( C ) A.MOV BX, BUF B.LDS BX,BUF C.MOV BX,OFFSET BUF D.MOV BX,WOKD PTR BUF , 100. 设有变量 VAR 和标号 LAB,不正确的指令是( C ) A.LEA AX,VAR B.LEA AX,LAB C.JMP NEAR PTR VAR D.JMP SHORT LAB 101. 设 SP 的初值为 1000H,执行指令 PUSH AX 后 SP 的值是( C ) A.0FFFH B.1001H C.0FFEH D.. 下列指令执行后既能使 AX=0 同时又使 CF=0,OF=0 的是( A ) A.XOR AX,AX B.AND AX,AX , C.OR AX,AX D.TEST AX,0 103. 在指令的操作数字段中,允许出现表达式,若 BUF1 与 BUF2 均为变量名,下面指令中 正确的是( D ) A.MOV DX,BUF1*BUF2 B.MOV DX,BUF1/BUF2 C.MOV DX,(BUF1*BUF2)-BUF1 D.MOV DX,BUF2-BUF1 , 104. 汇编语言源程序,可以是( D ) A.可以直接由机器执行 B.必须由编译程序生成目标程序才能执行 C.必须由解释程序生成目标程序才能执行 D.必须由汇编程序汇编成目标程序才能执行 必须由汇编程序汇编成目标程序才能执行 105. 下述指令语句执行后 AX 中的内容是( A ) ORG 200H BUF DB 12H,34H
MOV AX, WORD PTR BUF A.3412H B.1234H C.0200H D.. 伪指令 DA1 DB 04H DUP(3 DUP(2), 2 DUP(3))在数据区中能构成 0203H 操作数共有 ( C ) A.07 个 B.04 个 C.03 个 D.02 个 107. 设 NUM1 EQU 100, NUM2= 64H, 下面指令执行后, BL 中为全 1 的指令是( 使 A ) A.MOV BL,NUM1 EQ NUM2 , B.MOV BL,NUM1 LT NUM2 C.MOV BL,NUM1 NE NUM2 D.MOV BL,NUM1 GT NUM2 108. 设非压缩 BCD 码(AL)=09H,(BL)=04H 在执行 SUB AL,BL 指令后应选的校正指令是 ( B ) A.DAA B.AAS C.DAS D.AAA 109. 设 AX=9ABCH,DX=8765H,下述 4 条指令执行后,AX,DX 中内容分别是( D ) PUSH AX PUSH DX POP AX POP DX A.AX=9ABCH DX=8765H B.AX=9ABCH DX=9ABCH C.AX=8765H DX=8765H D.AX=8765H DX=9ABCH 110. 下述两条指令执行后,DA2 中两字节单元内容分别是( B ) DA1 EQU WORD PTR DA2 DA2 DB OABH,OCDH
SHL DA1,1 SHR DA2,1 A.0ABH,0CDH B.2BH,9BH , C.4DH,57H D.56H,9BH 111. 无条件转移指令 JMP 实现段间间接转移,转移的目标地址在( B ) A.某个字存储单元中 B.某个双字存储单元中 某个双字存储单元中 C.某个 16 位通用寄存器中 D.两个 16 位通用寄存器中 112. 假设存储器中从 7462H 单元开始的四个相邻字节单元中的内容依次是 32H, 46H, 52H, OFEH,则存放字数据 OFE52H 的字地址是( C ) A.7462H B.7463H D.7465H C.. 当堆栈为空时,如 SS=0805H,SP=40H,栈底字单元的物理地址是( A ) B.08089H A.08090H C.0808EH D.0. 设 ADRT=100H,不符合语法规则的语句是( D ) A.MOV AX,ADRT B.MOV AX,[ADRT+SI] C.MOV [ADRT],AX D.MOV ADRT[SI],AX 115. 下面 XCHG 指令语句中,语法正确的是( B ) A.XCHG AX,DS B.XCHG BL,[BX] C.XCHG AL,0FH D.XCHG[SI],[DI] 116. 设(AL)=63H (BL)=29H 执行下面指令后( C ) SUB AL,BL DAS AX 的内容是 A.(AX)=0304H B.(AX)=0034 C.(AX)=0034H D.(AX)=. 设 BX=1234H,DS=2000H,(21234H)=5678H,则指令&LEA SI,[BX]&执行后的结果是 ( A ) A.SI=5678H B.SI=1234H C.SI=2000H D.SI=. 设 DF=0,SI=20H,CX=10,执行 REP LODSW 指令后,SI 中的内容是( D ) A.20H B.30H C.34H D.40H 119. 设 AL=0A8H,CL=23H,执行乘法指令 MUL CL 后,标志位 OF,CF 的值分别是( A ) A.OF=1,CF=1 B.OF=1,CF=0 C.OF=0,CF=1 D.OF=0,CF=0 120. 下述三条指令执行后,BX 中的内容是( A ) MOV BX,0FFFEH NEG BX NOT BX A.-1 B.-2 C.-3 D.-4 121. 设数据段有:DA1 DB XX ;是任一数据 DA2 DB OFEH 下列两条指令:MOV DL, DA1 OR DL,DA2 执行后,DL 中的内容可能是( A ) A.0FFH 或 0FEH B.只能是 0FEH C.只能是 0FFH D.只能是 01H 122. NUM1=200 NUM2=0C8H MOV AL,NUM1 XOR NUM2上述语句执行后 AL 中的值是( C ) A.200 B.0C8H C.0 D.0FFH 123. ORG 100H NUM EQU 8042H DA1 DB 56H
MOV BX,0FFSET DA1 上述程序段执行后 BX 中的值是(B ) A.56H B.100H C.101H D.102H 124. 设数据段中定义语句 DA1 DB 12H,34H DA2 DW 12H,34H 下面有语法错误的语句是( B ) A.BUF1 DW DA1 B.MOV DA1+1,AX C.MOV BYTE PTR DA2+1,AL D.MOV WORD PTR DA1,AX 125. 在同一程序段中,定义下面伪指令,错误的是( D ) A.PORT1 EQU AL B.PORT2=AL C.PORT2=2A50H AND 0FFH D.PORT3 EQU 2A50H PORT3 EQU 2A50H AND 0FFH 126. X DB 20H DUP(0) Y DW '7A','8B'
MOV CH,LENGTH Y MOV CL, LENGTH X 执行上述指令后,CX 中的内容是 ( A ) A.0120H B.2010H C.207AH D.7A20H 127. 执行 SUB AX,[BP][DI]指令,取源操作数时,使用的物理地址表达式是(A ) A.16*SS+BP+DI B.16*ES+BP+DI C.16*DS+BP+DI D.16*CS+BP+DI 128. 指令 MOV BYTE PTR[BX+SI] 目的操作数的寻址方式是( D ,0 ). A.立即寻址 B.寄存器寻址 C.寄存器间接寻址 D.基址变址寻址 基址变址寻址 129. 已知 DS=12A0H,ES=22A0H,SS=33A0H,BP=0174H,指令 MOV AX,DS: [BP]源 操作数的物理地址是( D ). A.12A074H B.22B74H C.33B74H D.12B74H 130. 某数组共有 4 个字,第一个字的物理地址是 1F100H,则第 4 个字的物理地址是 ( D ). A.1F105H B.1F106H C.1F107H D.1F108H 131. 循环指令 Loop 规定循环次数必定在( C )寄存器中. A.DX B.DL C.CX D.CL 132. 指令 LODSB 操作数的段地址一定在( B )寄存器中. A.CS B.DS C.ES D.SS 133. 有数据定义 LIST DB 45H,36H,18H,76H,执行 MOV AX,WORD PTR LIST+2,则 AX=( D ). A.3600H B.0036H C.1876H D.. 下列数据定义语句错误的是( C ). A.ERR DW 'ERROR! ' B.BUF DB 9 DUP(?) C.FLAG DB 1 D.DAT1 DW ? 135. 8086 的存储器是分段的,定义一个段的伪指令是( C ). A.PROC 和 ENDP B.NAME 和 END D.SEGMENT 和 ASSUME C.SEGMENT 和 ENDS 136. 已知 AX=1200H,能使 CF 置'1'的指令是( D ). A.OR AX,AX B.NEG AX C.NOT AX D.DEC AL 137. 已知 SP=12EH,执行段间返回指令 RET 后,SP 的值是( D ). A.12AH B.12CH C.130H D.132H 138. 已知 AX=0139H,BL=36H,执行下列指令序列,则 AX=( A ). ADD AL,BL AAA A.016FH B.0175H C.0205H D.. 将 AX 中有符号数除以 4 的正确指令序列是( B ). A.SHR AX,1 B.SAR AX,1 , SHR AX,1 SAR AX,1 , C.IDIV 4 D.DIV 4 140. 已知 CS=2300H,DS=2400H,执行下列指令序列后,CS 和 DS 值是( B ). PUSH CS POP DS A.CS=0 B.CS=2400H DS=2300H DS=2300H C.CS=2400H D.CS=2300H DS=2400H DS=. 用转移表法的多分支程序设计,分支表是建在( C )中. A.代码段 B.数据段 D.堆栈段 C.附加段 附加段 142. 扩展名是 EXE 的汇编语言可执行程序用 DOS 功能调用返回操作系统指令是( B ). A.MOV AX,4CH B.MOV AX,4C00H C.MOV AL,4CH D.MOV AH,2CH 143. 串比较指令 REPE CMPSB 重复比较执行的条件是( B ). A.CX≠0 并且 ZF=0 B.CX≠0 并且 ZF=1 ≠ C.CX≠0 或者 ZF=0 D.CX≠0 或者 ZF=1 扫描结束, 那么表示 ( D ) 144. 用 REPE SCASB 指令对字符串进行扫描, CX ≠ 0 时, 如 A.在字符串中遇上第一个 AL 中指定的字符 B.在字符串中有一个 AL 中指定的字符 C.在字符串中有一个不是 AL 中指定的字符 D.在字符串中遇上第一个不是 AL 中指令的字符 在字符串中遇上第一个不是 145. 下列指令执行后对源和目的操作数均无影响的是( D ) A.MOV [BX+2],AX B.SUB AX,2467H C.SBB [SI],BX D.CMP AX,BX , 146. 表示宏定义结束的伪指令是( D ) A.ENDP B.ENDS C.END D.ENDM 147. 下列有语法错误的语句是( C ) A.DB 12H B.DW 4567H C.DD ABCD@ D.DB ACD@ @ 148. 下面指令执行后,AX 的内容是( A ) DB1 DB 8 DUP(2 DUP(3) DUP(2) ,3 ) ┇ MOV AX,WORD PTR DB1 [04H] A.0302H B.0203H C.0202H D.. 符号 COUNT 等价的值是( B ) BUF1 DB 3 DUP(0,2 DUP (1,2) ,3) COUNT EQU $ -BUF1 A.6 B.18 C.16 D.8 150. 下述指令执行后,DA2 中的内容是( C ) DA1 DW 2A05H DA2 DB 0FAH ┇ MOV AL,BYTE PTR DA1 SUB DA2,AL A.0DAH B.0FAH C.0F5H D.0D0H 151. 设(SS)=338AH, (SP)=450H,执行 PUSH BX,和 PUSHF 两条指令后,堆栈顶部 的物理地址是( A ) A.33CECH B.33CF2H C.33CF4H D.33CE8H 152. 设(SP)=0028H,执行段内返回指令 RET 6 后,SP 的内容是(C ) A.0036H B.0022H C.0030H D.. 设 DL=55H,执行指令后能使 DL 中的数据为 OAAH 的指令是( D ) A.TEST DL, 0AAH B.OR DL, 0AAH C.NEG DL D.XOR DL, 0FFH , 154. 当 SS=9876H, SP=4328H,执行 POPF 指令后,堆栈顶部的物理地址是( A) B.9CA90H A.9CA8AH C.9CA86H D.0DB00H 155. 下述定义的数据单元中,能构成 0303H 字存储单元的个数是(D ) DW 10H DUP (2 DUP(3),300H) A.10H B.20H C.1EH D.OFH 156. 设 AX 中有一带符号数 8520H,执行 SAR AX,1 指令后,AX 中的值是( C ) A.4290H B.0A40H C.0C290H D.0C260H 157. 下列中指令执行后,能影响标志位的指令是( B ) A.PUSHF B.POPF C.JNLE OPR D.LOOPZ LOP 158. 下面两个传送指令语句中源操作数寻址方式是( C ) VAR1 DW 32H VAR2 EQU 32H ┇ MOV AX,VAR1 MOV BX,VAR2 A.都是立即数寻址 B.前一条指令是立即数寻址,后一条指令是直接寻址 C.前一条指令是直接寻址,后一条指令是立即数寻址 前一条指令是直接寻址, 前一条指令是直接寻址 D.都是直接寻址 159. 设变量 ARRAY 的偏移量是 0084H,下述指令执行后 AX 中的内容是( B ) ARRAY DW 6, 9, $+4, 10H, 1,$+4 ┇ MOV AX, ARRAY+4 A.0009 B.008CH C.0090H D.. 设 AX=0CCBBH, CF=1 AND AX, 7FFEH RCR AX, 1 上述两条指令执行后,AX 和 CF 中的内容分别是( C ) A.AX=265DH,CF=0 B.AX=265DH,CF=1 C.AX=A65DH, CF=0 D.AX=A65DH, CF=1 161. DA_B EQU BYTE PTR DA_W DA_W DW 'AB' 'CD','EF'','GH' ┇ MOV BX,DA_W+3 MOV BH,DA_B+3 执行上述两条指令后,BX 中的内容是( B ) A.'EF' B.'FC' ' ' C.'CC' D.'FF' 162. 指令语句中标号的错误定义是( C ) A.在供码段中的名字项定义,后面紧跟冒号 B.用 EQU 伪指令定义 C.用 LABEL 伪指令定义 用 D.由&JMP 标号&指令定义 163. 下述程序段执行的结果是( A ) XOR AX,AX MOV CX,5 NEXT:ADD AL,6 AAA LOOP NEXT A.AX=0030H B.AX=0300H C.AX=30 D.AX=001EH 164. 如某循环程序是对两个数组进行某种运算处理, 当数组处理完毕或运算处理的结果不为 某一指定值时(每次循环时,对运算结果已进行了测试),就结束循环.如要求一定使用 循环控制指令,这时应选用的指令是(C ) A.LOOP B.LOOPE/LOOPZ C.LOOPNE/LOOPNZ D.JCXZ 165. CPU 发出的访问存储器的地址是( A ) A.物理地址 B.偏移地址 物理地址 C.逻辑地址 D.段地址 166. 将高级语言的程序翻译成机器码程序的实用程序是( A ) A.编译程序 B.汇编程序 编译程序 C.解释程序 D.目标程序 167. DEC BYTE PTR[BX]指令中的操作数的数据类型是( C ) A.字 B.双字 C.字节 D.四字 字节 168. 在下列语句中,BUFFER 称为( B ) BUFFER DB 01H,0AH A.符号 B.变量 变量 C.助记符 D.标号 169. 串操作指令中,源串操作数的段地址一定在( C )寄存器中. A. CS B. SS C. DS D. ES 170. 使计算机执行某种操作的命令是( B ) A.伪指令 B.指令 指令 C.标号 D.助记符 171. 将数据 5618H 存放在存储单元中的伪指令是( B ) A. DATA1 DW 1856H B. DATA1 DB 18H,56H , C. DATA1 EQU 5618H D. DATA1 DB 18H,00H,56H,00H 172. 若 AX=3500H,CX=56B8H,当 AND AX,CX 指令执行后,AX=( A ) A. 1400H B. 77F8H C. 0000H D. 0FFFFH 173. 计算机处理问题中会碰到大量的字符,符号,对此必须采用统一的二进制编码.目前, 微机中普遍采用的是( C )码. A. BCD 码 B.二进制码 C.ASCII 码 D.十六进制码 174. 用指令的助记符,符号地址,标号和伪指令,宏指令以及规定的格式书写程序的语言称 为( A ) A.汇编语言 B.高级语言 汇编语言 C.机器语言 D.低级语言 175. 用 DEBUG 调试汇编语言程序时,显示某指令的地址是 2F80:F400,此时段寄存器 CS 的值是( B ) A.F400H B.2F80H C.F4000H D.2F800H 176. 设 DS=1100H, (12000H)=80H, (12001H)=20H, (12002H)=30H, 执行 MOV AX,[1000H] 则 AX=( C ) A.8000H B.0080H C.2080H D.. 下列四条指令中错误的是( D ) A.MOV AX, [SI] B.MOV AX, [DI] C.MOV AX, [SI+DI] D.MOV AX, [SI-DI] ] 178. 下列四条指令执行后不影响标志位的是( A ) A.JNC NEXT B.CMP AX, BX C.SHL AX, 1 D.OR AL, AL 179. 已知 AX=0001H,下列四条指令执行后,不能使 ZF=1 的语句是( C ) A.DEC AX B.SUB AX, 1 C.AND AX , 1 D.CMP AX,1 180. 在
系统中,约定用于形成堆栈段数据物理地址的寄存器有( A ) A.SS, SP, BP B.SS, SP, BX C.DS, BX, BP D.DS, SP, BP 181. 有指令 MOV AX, 1234H,指令中的立即数 1234H 是存储在( B) A.数据段 B.代码段 代码段 C.附加段 D.堆栈段 182. 要在程序中定义缓冲区 BUF,保留 9 个字节存储空间的语句是( C ) A.BUF DW 9 B.BUF DB 9 C.BUF DB 9 DUP (?) D.BUF DW 9 DUP (?) 183. 已知 AL=56H,BL=34H, 都是压缩 BCD 码, 要执行二数相加, 正确的指令是( A ) A.ADD AL,BL B.ADC AL,BL DAA DAA C.ADD BL,AL D.ADC BL,AL DAA DAA 184. 在执行子程序段内调用 CALL SUBR 指令后,SP 的值( D ) A.加 1 B.减 1 C.加 2 D.减 2 减 185. 完成将 AX 清零,并且使 CF 清零,下面错误的指令是( D ) A.SUB AX, AX B.AND AX, 0 C.XOR AX,AX D.MOV AX,0 , 186. 定义宏指令的伪指令是( D) A.PROC 和 ENDP B.CODE 和 ENDS C.EQU 和 END D.MACRO 和 ENDM 187. 在汇编语言源程序中,表达式的计算是由( C )完成的. A.编程者 B.汇编程序 C.程序执行时 D.连接程序 188. 为了使执行串操作指令时,地址按减量方式处理应使用指令( D ) A.CLI B.STI C.CLD D.STD 189. 有数据定义 NUM DB '12345' ,经汇编后,NUM 占有( B )字节存储单元. A.1 B.5 C.6 D.7 190. 汇编语言源程序每个语句可以由四项组成, 如语句要完成一定功能, 那么该语句中不可 省略的项是( B ) A.名字项 B.操作项 操作项 C.操作数项 D.注释项1. 2.3. 4. 5. 6. 7.8. 9.下面这九道大题正在进行中 ing 编写一子程序,将 AL 中一位十六进制数转移为对应的 ASCII 码并用 2 号 DOS 功能调 用显示出来,输入参数:被转换的十六进制数已在 AL 中. 已知在数据区 BUF1 和 BUF2 分别存放 20 个字节数据.编程检查两数据区中的数据是 否相同.若完全一致,则将标志单元 FLAG 置 FFH,否则置 0,并将第一次出现的不同 数据的地址分别存放在 ADDR1 和 ADDR2 单元中. 把 2 个非压缩 BCD 码组合为一个压缩 BCD 码,并存入 DA3 中. 已知 DAT1 字节单元有一个数据,试编制一程序段将该数据的低 4 位变为 1010B,最高 位(第 7 位)置 1,其余 3 位不变,结果送 DAT2 字节单元. 以二进制位串的形式,从高位到底位,在屏幕上显示 AL 中值,例如,AL=6AH,显示: .编写此程序段. 已知在以 BUF 为首地址的数据区中,存放 10 个八位无符号 数,编程求出最大偶数存 入 BIG 单元,并将它的偏移地址存入 ADDR 中. 已知三个带符号的字节数据 a,b,c 存放在 ADR 开始的连续单元中,若 a,b,c 同时 为正数则 FLAG 单元置 0,若同时为负数,则 FLAG 单元置 1,否则 FLAG 单元置全 1, 请编写完整源程序. 编写一完整源程序,将 DB1 中的二进制数按位倒排送 DB2 中,即 DB1 第 0 位送 DB2 第 7 位,DB1 第 1 位送 DB2 第 6 位,依次类推. 编写程序实现从键盘输入 10 个学生的成绩,排序后将结果输出到屏幕上,要求输入, 输出,排序分别用子程序实现.
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 8086汇编语言程序设计 的文章

 

随机推荐