广工2008汇编语言(B)带答案注释

合集下载

汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案教案章节:一、汇编语言简介1. 汇编语言的概念2. 汇编语言的特点3. 汇编语言的应用领域二、汇编语言的基本语法1. 数据类型及表示2. 指令格式及分类3. 寄存器使用规则三、汇编语言程序设计步骤1. 分析需求,确定程序功能2. 选择合适的汇编语言及开发环境3. 编写汇编代码,调试程序4. 优化程序性能四、常用汇编指令及功能1. 数据传输指令2. 算术运算指令3. 逻辑运算指令4. 控制流指令5. 字符串操作指令6. 中断指令五、汇编语言与C语言的接口编程1. extern声明汇编函数2. 调用汇编函数的方法3. 汇编函数与C函数的数据交换4. 实例分析:汇编语言实现字符串排序习题答案:一、汇编语言简介1. 汇编语言是一种低级编程语言,用于编写计算机程序。

(正确)2. 汇编语言可以直接操作计算机硬件资源。

(正确)3. 汇编语言程序可读性差,不易维护。

(正确)二、汇编语言的基本语法1. 数据类型及表示a. 字节:8位(正确)b. 字:16位(正确)c. 双字:32位(正确)d. 四字:64位(正确)2. 指令格式及分类a. 操作码(正确)b. 操作数(正确)c. 寄存器(正确)d. 标志位(正确)3. 寄存器使用规则a. 通用寄存器:AX, BX, CX, DX(正确)b. 段寄存器:CS, DS, ES, SS(正确)c. 指令指针:IP(正确)d. 状态寄存器:FLAGS(正确)三、汇编语言程序设计步骤1. 分析需求,确定程序功能(正确)2. 选择合适的汇编语言及开发环境(正确)3. 编写汇编代码,调试程序(正确)4. 优化程序性能(正确)四、常用汇编指令及功能1. 数据传输指令a. MOV:数据传送(正确)b. PUSH:压栈(正确)c. POP:出栈(正确)d. XCHG:交换数据(正确)2. 算术运算指令a. ADD:加法(正确)b. SUB:减法(正确)c. MUL:无符号乘法(正确)d. IMUL:有符号乘法(正确)3. 逻辑运算指令a. AND:逻辑与(正确)b. OR:逻辑或(正确)c. XOR:逻辑异或(正确)d. NOT:逻辑非(正确)4. 控制流指令a. JMP:无条件跳转(正确)b. JE:相等跳转(正确)c. JNE:不相等跳转(正确)5. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)6. 中断指令a. INT:软件中断(正确)b. INTO:中断向量表(正确)五、汇编语言与C语言的接口编程1. extern声明汇编函数(正确)2. 调用汇编函数的方法(正确)3. 汇编函数与C函数的数据交换(正确)4. 实例分析:汇编语言实现字符串排序(正确)汇编语言程序设计教案及习题答案教案章节:六、汇编语言的输入与输出1. 输入输出指令2. 字符串操作指令3. 实例分析:编写一个简单的输入输出程序七、汇编语言的杂项指令1. 杂项指令的概念2. 常用杂项指令及其功能3. 实例分析:杂项指令的应用八、汇编语言的子程序调用1. 子程序调用的概念2. 子程序的定义与调用3. 子程序的返回4. 实例分析:子程序在汇编语言中的应用九、汇编语言的程序举例1. 实例一:计算两个数的和2. 实例二:字符串的复制3. 实例三:数制的转换4. 实例四:文件的读写十、汇编语言程序的调试与优化1. 调试工具的使用2. 调试方法与技巧3. 程序优化的概念4. 程序优化的方法与技巧习题答案:六、汇编语言的输入与输出1. 输入输出指令a. IN:输入指令(正确)b. OUT:输出指令(正确)c. INPUT:输入函数(正确)d. PRINT:输出函数(正确)2. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)3. 实例分析:编写一个简单的输入输出程序(正确)七、汇编语言的杂项指令1. 杂项指令的概念(正确)2. 常用杂项指令及其功能a. NOP:无操作(正确)b. HLT:停止CPU运行(正确)c. CMC:翻转标志位(正确)d. ARPL:寄存器之间交换(正确)3. 实例分析:杂项指令的应用(正确)八、汇编语言的子程序调用1. 子程序调用的概念(正确)2. 子程序的定义与调用a. 定义子程序(正确)b. 调用子程序(正确)3. 子程序的返回(正确)4. 实例分析:子程序在汇编语言中的应用(正确)九、汇编语言的程序举例1. 实例一:计算两个数的和(正确)2. 实例二:字符串的复制(正确)3. 实例三:数制的转换(正确)4. 实例四:文件的读写(正确)十、汇编语言程序的调试与优化1. 调试工具的使用(正确)2. 调试方法与技巧(正确)3. 程序优化的概念(正确)4. 程序优化的方法与技巧(正确)汇编语言程序设计教案及习题答案教案章节:十一、汇编语言与操作系统1. 操作系统的概念2. 汇编语言在操作系统中的应用3. 实例分析:汇编语言编写简单的操作系统十二、汇编语言与设备驱动程序1. 设备驱动程序的概念2. 汇编语言在设备驱动程序开发中的应用3. 实例分析:汇编语言编写简单的设备驱动程序十三、汇编语言与嵌入式系统1. 嵌入式系统的概念2. 汇编语言在嵌入式系统中的应用3. 实例分析:汇编语言编写简单的嵌入式系统十四、汇编语言与汇编器的使用1. 汇编器的概念2. 汇编器的使用方法3. 实例分析:使用汇编器编写和调试汇编程序十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势2. 汇编语言在未来的应用领域3. 汇编语言学习的方法与建议习题答案:十一、汇编语言与操作系统1. 操作系统的概念(正确)2. 汇编语言在操作系统中的应用(正确)3. 实例分析:汇编语言编写简单的操作系统(正确)十二、汇编语言与设备驱动程序1. 设备驱动程序的概念(正确)2. 汇编语言在设备驱动程序开发中的应用(正确)3. 实例分析:汇编语言编写简单的设备驱动程序(正确)十三、汇编语言与嵌入式系统1. 嵌入式系统的概念(正确)2. 汇编语言在嵌入式系统中的应用(正确)3. 实例分析:汇编语言编写简单的嵌入式系统(正确)十四、汇编语言与汇编器的使用1. 汇编器的概念(正确)2. 汇编器的使用方法(正确)3. 实例分析:使用汇编器编写和调试汇编程序(正确)十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势(正确)2. 汇编语言在未来的应用领域(正确)3. 汇编语言学习的方法与建议(正确)重点和难点解析本文主要介绍了汇编语言程序设计的基础知识和应用领域,通过详细的章节安排,从汇编语言的基本概念、语法规则、程序设计步骤、常用指令及其功能、输入输出操作、杂项指令、子程序调用、程序举例、调试与优化等方面进行了深入讲解。

汇编语言选择题填空题库

汇编语言选择题填空题库

汇编语言各章习题、测试题答案测验一单选题:1. 已知 X=76,则[X]补=。

A. 76H B . 4CH C.0B4H D.0CCH2. 已知[X]补=80H ,则 X=。

A. 80HB. 0C. 0FFH D . -80H3. 已知[X]补=98H ,则[X]补/2=。

A . 0CCH B.4CH C. 49H D. 31H4. 已知 X=78, Y=-83,则[X+Y]补= 。

A. 0F5HB. 0A1H C . 0FBH D. 65H5. 将 124 转换成十六进制数的结果是 A . 7CH B. 7DH C. 7EH D. 7BH6. 将 93H 看成一个压缩 BCD 码,其结果是A. 10010101 B . 10010011 C.10000011 D.100000017. 45 转换成二进制数是A.10101101B.00111101C. 00101101D. 100111018. 6CH 转换成十进制数是 A. 118 B . 108 C. 48 D. 689. 将 93H 扩展为字的结果是A. FF93HB. 0093HC. 1193HD. 1093H10. 56 的压缩 BCD 码是A. 38H B . 56H C. 0506H D. 3536H11. ASCII 中的 47H 表示的字符是 A . “7” B . “G ” C . “g ” D. “E”12.十进制数 - 128 的 8 位二进制数的补码为A. 11111110B. 01111111 C . 10000000 D. 1000000113.下列为补码表示,其中真值最大的是 A. 10001000 B.11111111 C.00000000 D .0000000114.十六进制数 88H,可表示成下面几种形式,请找出错误的表示A. 无符号十进制数 136B. 带符号十进制数-120C. 压缩 BCD 码十进制数 88D. 8 位二进制数-8 的补码15.计算机对字符、符号采用统一的二进制编码。

汇编语言课后答案

汇编语言课后答案
(5) ADD AL, 0B5H
3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:
(1) 寄存器间接寻址
(2) 寄存器相对寻址
(3) 基址变址寻址
答:(1) MOV BX, OFFSET BLOCK
ADD BX, (6–1)*2
MOV DX, [BX]
(4) 32767=111 1111 1111 1111B=7FFFH
1.2 将下列二进制数转换为十六进制数和十进制数:
(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111
答:(1) 10 1101B=2DH=45
(2) MOV BX, OFFSET BLOCK 改为: MOV BX, (6-1)*2
MOV DX, [BX+(6–1)*2] 也可 MOV DX, BLOCK[BX]
(3) MOV BX, OFFSET BLOCK
MOV SI, (6–1)*2
MOV DX, [BX][SI]
3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
答:BX、BP、SI、DI、堆栈操作时的SP、对应的段地址、386及其后继机型的Exx。
2.9 请将下列左边的项和右边的解释联系起来(把所选字母放在括号中):
(1) CPU (M) A.保存当前栈顶地址的寄存器。

80x86汇编语言程序设计课后答案

80x86汇编语言程序设计课后答案

80x86汇编语言程序设计课后答案【篇一:《80x86汇编语言程序设计》教案及答案(第二版)】汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:2007年8月18日前言1. 汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2. 汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3. 本教材共有十一章,其内容安排如下:(1). 第一、二章为汇编语言所用的基础知识。

(2). 第三章详细介绍80x86系列cpu的指令系统和寻址方式。

(3). 第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4). 第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5). 第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6). 第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7). 第九章说明bios和dos系统功能调用的使用方法。

(8). 第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1. 沈美明、温冬婵编著,ibm–pc汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2. 沈美明、温冬婵编著,ibm–pc汇编语言程序设计,清华大学出版社,1991年3. 沈美明、温冬婵编著,ibm–pc汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4. 沈美明、温冬婵、张赤红编著,ibm–pc汇编语言程序设计—实验教程,清华大学出版社,1992年5. 周明德,微型计算机ibm pc/xt(0520系列)系统原理及应用(修订版),清华大学出版社,19916. 郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957. 王士元、吴芝芳,ibm pc/xt[长城0520] 接口技术及其应用,南开大学出版社,19908. 杨素行,微型计算机系统原理及应用,清华大学出版社,19959. 戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610. 张昆藏,ibm pc/xt微型计算机接口技术,清华大学出版社,199111. 孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/pentium),学苑出版社,199312. 吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 ....................................................................................................... .. (1)1.1 进位计数制与不同基数的数之间的转换 (1)1.2 二进制数和十六进制数的运算 ....................................................................................................... .. (2)1.3 计算机中数和字符的表示 ....................................................................................................... . (3)1.4 几种基本的逻辑运算 ....................................................................................................... (3)第 2 章 80x86计算机组织 ....................................................................................................... . (4)2.1 80x86微处理器 ....................................................................................................... . (4)2.2 基于微处理器的计算机系统构成 ....................................................................................................... . (4)2.3 中央处理机 ....................................................................................................... . (5)2.4 存储器 ....................................................................................................... (6)2.5 外部设备 ....................................................................................................... .. (7)第 3 章 80x86的指令系统和寻址方式 ....................................................................................................... .. (8)3.1 80x86的寻址方式 ....................................................................................................... (8)3.2 程序占有的空间和执行时间 ....................................................................................................... . (10)3.3 80x86的指令系统 ....................................................................................................... . (10)第 4 章汇编语言程序格式 ....................................................................................................... .. (26)4.1 汇编程序功能 ....................................................................................................... . (26)4.2 伪操作 ....................................................................................................... . (26)4.3 汇编语言程序格式 ....................................................................................................... .. (30)4.4 汇编语言程序的上机过程 ....................................................................................................... .. (33)第 5 章循环与分支程序设计 ....................................................................................................... . (35)5.1 循环程序设计 ....................................................................................................... . (35)5.2 分支程序设计 ....................................................................................................... . (36)5.3 如何在实模式下发挥80386及其后继机型的优势 (36)第 6 章子程序结构 ....................................................................................................... .. (37)6.1 子程序的设计方法 ....................................................................................................... .. (37)6.2 子程序的嵌套 ....................................................................................................... . (38)6.3 子程序举例 ....................................................................................................... .. (38)第 7 章高级汇编语言技术 ....................................................................................................... .. (39)7.1 宏汇编 ....................................................................................................... . (39)7.2 重复汇编 ....................................................................................................... . (40)7.3 条件汇编 ....................................................................................................... . (41)第 8 章输入/输出程序设计 ....................................................................................................... . (42)8.1 i/o设备的数据传送方式 ....................................................................................................... .. (42)8.2 程序直接控制i/o方式 ....................................................................................................... . (43)8.3 中断传送方式 ....................................................................................................... . (43)第 9 章 bios和dos中断 ....................................................................................................... . (46)9.1 键盘i/o ....................................................................................................... .. (46)9.2 显示器i/o ....................................................................................................... . (48)9.3 打印机i/o ....................................................................................................... . (49)9.4 串行通信口i/o ....................................................................................................... .. (50)第 10 章图形与发声系统的程序设计 ....................................................................................................... ........... 51 10.1 显示方 (51)10.2 视频显示存储器 ....................................................................................................... .................................. 51 10.3 ega/vga图形程序设计 ....................................................................................................... .................... 52 10.4 通用发声程序 ....................................................................................................... ...................................... 53 10.5 乐曲程序 ....................................................................................................... . (54)第 11 章磁盘文件存取技术 ....................................................................................................... ........................... 55 11.1 磁盘的记录方式 ....................................................................................................... .................................. 55 11.2 文件代号式磁盘存取 ....................................................................................................... .......................... 56 11.3 字符设备的文件代号式i/o ....................................................................................................... ................ 57 11.4 bios磁盘存取功能 ....................................................................................................... .. (58)附录:《ibm—pc汇编语言程序设计》习题参考答案 ............................................................................... 59 第一章.第二章.第三章.第四章.第五章.第六章.第七章.第八章.第九章.第十章.第十一章. 习题 ....................................................................................................... ................. 59 习................. 60 习题 ....................................................................................................... ................. 61 习题 ....................................................................................................... ................. 74 习题 ....................................................................................................... ................. 79 习题 ....................................................................................................... ................. 97 习题 ....................................................................................................... ............... 110 习题 ....................................................................................................... ............... 117 习题 ....................................................................................................... ............... 122 习题 ....................................................................................................... ............... 125 习题 ....................................................................................................... (136)错误!未指定书签。

汇编语言试题及参考答案

汇编语言试题及参考答案

汇编语言试题及参考答案汇编语言试题及参答案一、填空题1. ZF标志位是标志结果是否为零的,若结果,ZF为(),否则ZF为()。

当ZF 为1 时,SF 为()2. 标号可以有两种类型属性。

它们是()和()3.8 位无符号整数的表示范围为0--255 ,写成16 进制形式为(),8 位有符号整数的表示范围为-128--+127, 写成16 进制形式为()4. 伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是(),不得有名字的是(),可有可无名字的是()。

5. 循环程序通常由()()()和循环结果外理四部分构成6. 在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/()于+,-;XOR ,OR()于AND,LT ()于GT7. 宏指令定义必须由伪指令()开始,伪指令()结束,两者之间的语句称为()8. 调用程序与子程序之间的参数传递方法有四种,即堆栈法()()()9. 分别用一条语句实现下述指明的功能( 1 )栈顶内容弹出送字变量AYW ()(2)双字变量AYD 存放的地址指针送ES 和SI()(3)变量AY2 类型属性送AH ()( 4 )不允许中断即关中断()(5)将字符串‘ HOW ARE YOU 存入变量AYB ()( 6 )子程序返回调用程序()(7)地址表达式AYY[4]的偏移地址送字变量ADDR()(8)AX 的内容加 1 ,要求不影响CF()(9)BX 的内容加1,要求影响所有标志位()(10)若操作结果为零转向短号GOON ()二、单选题1.IBM PC 微机中,有符号数是用()表示的1 .原码2.补码3.反码4.BCD 码2. 把汇编源程序变成代码程序的过程是()1 .编译2.汇编3.编辑4.链接三、己知:VAR1 ,VAR2 的类型属性分别为字和字节,标号LPFAR 的类型属性为FAR。

指出下列非法语句的错误原因1. POP CS ()2.INC [BX] ()3. MVL 8()4. JLE LPFAR()5. MOV DB,1800()6. MOV[DI],VAR17.SUB AX,VAR2()8.CMP SS AX()四、简答题1. 试述子程序的一般结构组成2. 标号有哪三个属性?其含义是什么?3. 试述CMP AX ,BX 和SUB AX ,BX 两条语句的异同点?五、阅读如下程序段,回答所提出的问题,假定X1,X2,...XN 为无符号数。

(完整版)汇编语言习题详解(全部)(免费)

(完整版)汇编语言习题详解(全部)(免费)

《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。

汇编习题参考答案

汇编习题参考答案

部分习题参考答案1.5 下列各数均为十进制数,请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值,运算结果所代表的十进制数是多少?如果用16位二进制补码运算,其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢?(1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69)85=55H,69=45H,-69=BBH,8位二进制补码运算:(1)85+69 =55H+45H=9AH, CF=0,OF=1(2)85+(-69)=55H+BBH=110H,CF=1,OF=0其余略1.6实模式下,写出段地址和偏移地址为1234:2002、1430:0042、FF00:0FFF的物理地址。

1234:2002=12340+2002=143421430:0042=14300+0042=14342FF00:0FFF=FF000+0FFF=FFFFF1.7已知8086系统某存储单元物理地址为:52506H,你认为段基址的最大值、最小值分别是多少? 8086微机最多可以有多少个不同的段基址?52506=5250:0006, 段基址的最大值=525052506=4251:FFF6, 段基址的最小值=42511.8从物理地址为00100H开始到00103H单元中顺序存放的数据为:12H,34H,56H,78H。

请画出数据存放示意图,并回答以下问题:(1)写出00101H字节单元的内容(00101)= 34H(2)写出00102H字单元的内容(00102)= 7856H习题33.1 分别说明8086处理器中各寄存器的名称和作用是什么?3.2 溢出标志OF与进位标志CF有何作用和区别?3.3 何为段地址?何为有效地址?何为物理地址?用指令举例说明。

3.4 带符号数比较大小,当AX < BX时程序转向标号L1,若前导指令为CMP AX, BX后续指令应为什么?若视为二个无符号数比较大小, 后续指令应为什么?带符号数:JL L1, 无符号数:JB L13.5 ADD指令和ADC指令在什么情况下是一样的结果?CF=03.6 说出CALL指令和INT 21H指令的操作,有何异同?CALL把断点压入堆栈,不一定是远调,INT 21H还要把FLAGS压入堆栈,且是远调,总入口地址为84H内存中的两个字。

《汇编语言》作业及答案

《汇编语言》作业及答案

习题一1.在计算机内部,计算机能够直接执行的程序语言是。

A.汇编语言B.C++语言C.机器语言D.高级语言2.在堆栈段中,存放栈顶地址的寄存器是。

A.IP B.SPC. BX D. BP3.指令指针寄存器IP用来存放代码段中的偏移地址。

在程序运行的过程中,它始终指向。

A.下一条指令的首地址B.下一条指令的地址C.当前指令的首地址D.当前指令的地址4.编译程序的功能是。

A.检查源程序中的语法错误和逻辑错误B.将源程序编译成目标程序C.改正源程序中的语法错误D.将高级语言源程序翻译成汇编语言源程序5.用户为了解决自己的问题,用汇编语言所编写的程序,称为。

A.目标程序B.源程序C.可执行程序D.汇编程序6.计算机中用来存储程序、数据等信息的记忆装置是。

A.控制器B.运算器C.CPUD.存储器7.在宏汇编中,源程序必须通过____编译_______生成目标代码,然后用连接程序将其转化为可执行文件, 该文件可在系统中运行。

习题二1 当SS =3000H,SP =0100H 时,执行PUSH AX 指令后,堆栈顶部的物理地址是()A.30100H B.30098H C.30102H D.300FEH2 设10000010B分别以原码、补码及反码表示时,则对应的十进制数依次是()A.-82、-126、-2B.-2、-125、126C.-2、-126、-125D.-82、-125、1253 标志寄存器中属于控制标志位的是()A. DF,OF,SFB. DF,IF,TFC. OF,CF,PFD. AF,OF,SF4 设(AX)=4544H,在执行指令”SUB AH,AL”之后,()A.CF=0,OF=0 B.CF=0,OF=1C.CF=1,OF=0 D.CF=1,OF=15 若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行PUSH AX,PUSH BX,POP CX,POP DX后,寄存器CX的内容为______19____________。

汇编语言第四章答案

汇编语言第四章答案
(4) MOV AX, WORD_OP1[DX];错,DX不能用于存储器寻址
(5) MOV SADATA_WORD [BX][SI]
(7) MOV [BX][SI], 2;错,[BX][SI]未指出数据类型
(8) MOV AX, WORD_OP1+WORD_OP2
STACK_SEG SEGMENT PARA STACK ‘STACK’
DW 100H DUP (?)
TOS LABEL WORD
STACK_SEG ENDS;以上定义堆栈段
;----------------------------------------------------------------
(7) FLD7B为零件名(ASCII码)及其数量(十进制数)的表格:
PART1 20
PART2 50
PART3 14
(8) FLD1W为十六进制数字变量:FFF0;
(9) FLD2W为二进制数的字变量:01011001;
(10) FLD3W为(7)零件表的地址变量;
(11) FLD4W为包括5个十进制数的字变量:5,6,7,8,9;
(5) MOV CX, LENGTH TABLEB;(CX)=0001H
答:见注释。
4.15指出下列伪操作表达方式的错误,并改正之。
(1) DATA_SEG SEG;DATA_SEG SEGMENT(伪操作错)
(2) SEGMENT ‘CODE’;SEGNAME SEGMENT ‘CODE’(缺少段名字)
4.9有符号定义语句如下:
BUFF DB 1, 2, 3, ‘123’
EBUFF DB 0
L EQU EBUFF - BUFF
问L的值是多少?

汇编语言课后答案

汇编语言课后答案

1-1(1)传统计算机:①控制器;②运算器;③存储器;④输入设备;⑤输出设备。

现代计算机:①处理器;②存储系统;③输入输出系统。

(2) 直接控制硬件,易产生运行速度快,目标代码小的程序。

(3) 处理器中数量多,使用频率改,多种用途的一组寄存器。

(4) 后进先出。

(5) 6个状态标志:CF、AF、ZF、SF、PF、OF;3个控制标志位:DF、IF、TF。

(6) 左边最高位。

(7) 无。

(8) 字母大小写不同,但是表示同一个符号。

(9) 不被汇编。

(10) 源程序和目标代码,各种标识符的说明。

1-2(1) √(2) ×,属于专用寄存器(3) ×,8个16位通用寄存器(4) √(5) ×,不一样,原因见P25(6) √(7) ×,4部分需要分隔符区别(8) √(9) ×,程序终止代表程序执行结束,不意味汇编结束。

汇编是将源程序翻译成目标模块代码的过程,源程序的最后必须有一条END伪指令表明汇编结束,END指令之后的任何内容不被汇编程序处理。

(10) √1-3(1) 1M=220BYTE(2) 8(3) BX,CX,SI,DI,BP,SP(4) 16,DL,DH(5) 4,16(6) 低4位地址全为0,64KB(7) 段地址,偏移地址,IP(8) 目录(9) 操作码,地址码/操作数(10) .ASM,目标模块,.EXE1-4见P21-5见P101-6(1) 0FFF0H(2) 417H(3) 24500H(4) 0BC777H1-7代码段:主要存放程序中的指令代码。

数据段:主要存放当前运行程序所用的数据。

堆栈段:指明当前运行程序所使用的堆栈区域。

1-8见P4-P51-9见课件1-10见P25-P271-11见P16或者课件1-12见P17或者课件1-13FFH,Again,next,h_asscii1-14见P27或者课件2-1(1) 没有,因为8位字节表示的范围:0~255(2) 没有,都是46H(3) 因为(34+67H)*3是常数(4) 以避免与不能以数字开头的标识符混淆(5) 不能,因为8位字节表示的范围:0~255(6) 防止发生非法操作(7) 寻找操作数存储的地址(8) 有效地址直接包含在指令中(9) DS(10) 不正确,因为类型不匹配2-2(1) √(2) ×,小写字母排在大写字母之后(3) √(4) ×,不一样多(5) √(6) √(7) ×,没有对齐,因为0403H是奇数地址,不是偶数地址(8) √(9) √(10) √2-3(1) 97,61,a(2) 0DH,0AH(3) DB,OFFSET(4) 8843H(5) DWORD,4,WORD PTR(6) 3(7) 立即数寻址,寄存器寻址,存储器寻址(8) 寄存器寻址,立即数(9) 4028H(10) DS,SS2-4(1) 255(2) 0(3) 94(4) 2392-5(1) 00010010B(2) 00100100B(3) 01101000B(4) 10011001B2-6(1) 91(2) 89(3) 36(4) 902-7(1) 0B(2) 01111111B (3) 10000001B (4) 11000111B2-8(1) 8A36H ,CF=0 (2) 4AE4H ,CF=1 (3) 0AE10H ,CF=0 (4) 0ECA9H ,CF=12-9数码0~9:30H ~39H大写字母A ~Z :41H ~5AH 小写字母 a ~z :61H ~7AH0DH :回车符CR ,0AH :换行符LF2-10Data segmentmy1b DB ‘Personal Computer ’ my2b DB 20 my3b DB 14hmy4b DB 00010100B my5w DW 20 DUP(?) my6c EQU 100my7c EQU < Personal Computer > Data ends2-11Data segment NUM=5DATALIST DW -10, 2, 5, 4, ? Data ends2-13mov ax, offset mess;AX=114Hmov ax, type buff+type mess+type vard;AX=1+1+4=6mov ax, sizeof varw+sizeof buff+sizeof mess;AX=2*2+10*1+5*1=19mov ax, lengthof varw+ lengthof vard;AX=2+1=3118 H117 H116 H115 H mess 114 H113 H112 H111 H110 H10F H10E H10D H10C H10B Hbuff 10A H109 H108 H107 Hvard 106 H105Hvarb 104H103H102H101Hvarw 100H2-14略2-15var DD 12345678Hmov bx, word ptr var ;BX=5678Hmov cx, word ptr var+2 ;CX=1234Hmov dl, byte ptr var ;DL=78Hmov dh, byte ptr var+3 ;DH=12H var2-16P56 图2-10和图2-112-17(1) 立即数寻址(2) 直接寻址(3) 寄存器寻址(4) 寄存器间接寻址(5) 寄存器相对(6) 寄存器相对寻址(7) 基址变址寻址(8) 相对基址变址寻址3-1(1) MOV SI, BYTE PTR 250 或者MOV AL, BYTE PTR 250(2) DX与CL类型不匹配(3) 堆栈的操作“后进先出”(4) MOV BX, OFFSET[SI]汇编时并不知道指令在执行时SI等于什么,所以是错误的(5) 结果是0(6) 目的操作数(7) 大写=小写AND DFH ;D5位清0小写=大写OR 20H ;D5位置1大/小写=小/大写XOR 20H ;D5位求反(8) 利用CF和OF结果判断(9) DX.AX(10) 逻辑与运算规则类似于二进制的乘法。

汇编语言各种指令的解释与用法

汇编语言各种指令的解释与用法

【算术指令】
一、加法指令 12、加法指令 ADD (addition) 指令的汇编格式�add dst,src 指令的基本功能�(dst)<-(src)+(dst) 指令支持的寻址方式�他们两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况 外�源操作数和目地操作数必须有一个寄存器寻址方式。 指令对标志位的影响�SF=1 加法结果为负数�符号位为 1� SF=0 加法结果为正数�符号位为 0� ZF=1 加法结果为零 ZF=0 加法结果不为零 CF=1 最高有效位向高位有进位 CF=0 最高有效位向高位无进位 OF=1 两个同符号数相加�正数+正数或负数+负数��结果符号与其相反。 OF=0 两个不同符号数相加�或同符号数相加�结果符号与其相同。 13、带进为加法指令 ADC (add with carry) 指令的汇编格式�ADD dst,src 指令的基本功能�(dst)<-(src)+(dst)+CF 指令支持的寻址方式�他们两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况 外�源操作数和目地操作数必须有一个寄存器寻址方式。 指令对标志位的影响�SF=1 加法结果为负数 SF=0 加法结果为正数 ZF=1 加法结果为零 ZF=0 加法结果不为零 CF=1 最高有效位向高位有进位 CF=0 最低有效位相高位无进位 OF=1 两个同符号数相加�结果符号与其相反� OF=0 两个同符号数相加�或同符号相加�结果符号与其相同 14、加 1 指令 INC (increament) 指令的汇编格式�INC opr 指令的基本功能�(opr)<-(opr) 指令支持的寻址方式 可以使用除立即数方式外的任何寻址方式 指令对标志位的影响�SF=1 加法结果为负数 SF=0 加法结果为正数 ZF=1 加法结果为零 ZF=0 加法结果不为零 OF=1 两个同符号数相加�结果符号与其相反� OF=0 两个同符号数相加�或同符号相加�结果符号与其相同。 二、减法指令 15、减法指令 SUB (subtract) 指令的汇编格式�SUB dst,src 指令的基本功能�(dst)<-(dst)-(src) 指令支持的寻址方式�他们两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况

广工2008汇编语言(B)带答案注释

广工2008汇编语言(B)带答案注释

广东工业大学试卷用纸,共 5页,第1 页7.中断向量表中地址为0:124H的中断类型号是( C )。

中断类型号乘与4等于向量地址,所以124H除于4=49H,注意16进制的算法A. 48HB. 4AHC. 49HD. 50H8.取变量或标号偏移地址的伪操作符是( A )。

A. OFFSETB. PTRD. SEG9.要使寄存器CL的最高位为1其它位保持不变,应使用的指令是( B )。

OR指令:AB变量中只要有一个变量取值为1,则它们或运算结果就是180H就是1000 000,所以最高位一定是1,其他位根据A变量决定A. XOR CL, 80HB. OR CL, 80HC. AND CL, 7FHD. NOT CL10.从键盘输入大写字母A,则在寄存器AL中存放的值为( C )。

A字母对应的ASCII码为65,65化为16进制为41HA. 31HB. 51HC.41HD.61H11.若A,B为无符号数,执行CMP A,B指令后,要求A>B时转移的条件指令为(B )。

A. JLEB. JAC. JBED. JG无符号数比较:ja/jb有符号数比较:jg/jl12.下列指令执行后总是使CF=0,OF=0的是( B )。

包括除了not至另外的所有逻辑运算指令(AND,OR,XOR,TEST)A.NEGB.TESTC. NOTD. DEC13.在使用DOS功能调用INT 21H时,要在屏幕上显示一个字符‘2’,应将AH设置为( C )。

A. 09HB. 31HC. 02HD. 01H14. 指令MOV AX,[SI+BX]中源操作数隐含的段为( B )。

A. 代码段B. 数据段C. 堆栈段D. 附加段15.已知SP=2000H,执行RET 2后(RET为段间返回指令),SP的值为( A )。

段间返回指令时远返回近返回还是远返回执行的操作不同如果是近返回:SP=SP+2+m如果是远返回:SP=SP+4+m16.A. 2006HB. 2004HC. 2002HD. 1FFAH广东工业大学试卷用纸,共5页,第2 页广东工业大学试卷用纸,共5页,第3 页广东工业大学试卷用纸,共5页,第5 页广东工业大学试卷用纸,共5页,第7 页广东工业大学试卷用纸,共5页,第8 页。

汇编语言常用指令大全解释

汇编语言常用指令大全解释

汇编语言常用指令大全解释汇编语言常用指令大全解释常用汇编指令:MOV指令为双操作数指令,两个操作数中必须有一个是寄存器.MOV DST , SRC // Byte / Word执行操作: dst = src1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器).2.立即数不能直接送段寄存器3.不允许在两个存储单元直接传送数据4.不允许在两个段寄存器间直接传送信息PUSH入栈指令及POP出栈指令: 堆栈操作是以"后进先出"的方式进行数据操作.PUSH SRC //Word入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器.入栈时高位字节先入栈,低位字节后入栈.POP DST //Word出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储器.执行POP SS指令后,堆栈区在存储区的位置要改变.执行POP SP 指令后,栈顶的位置要改变.XCHG(eXCHanG)交换指令: 将两操作数值交换.XCHG OPR1, OPR2 //Byte/Word执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp1.必须有一个操作数是在寄存器中2.不能与段寄存器交换数据3.存储器与存储器之间不能交换数据.XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码.XLAT (OPR 可选) //Byte执行操作: AL=(BX+AL)指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码.LEA(Load Effective Address) 有效地址传送寄存器指令LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中.执行操作: REG = EAsrc注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器MOV BX , OFFSET OPER_ONE 等价于LEA BX , OPER_ONEMOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中LDS(Load DS with pointer)指针送寄存器和DS指令LDS REG , SRC //常指定SI寄存器。

汇编语言课后习题解答

汇编语言课后习题解答

汇编语言课后习题解答汇编语言作为一种低级编程语言,被广泛应用于计算机系统的底层开发与优化。

在学习汇编语言的过程中,习题解答是一个非常重要的环节,它有助于我们深入理解汇编语言的原理和应用。

本文将针对汇编语言课后习题进行解答和分析。

第一题:需求:写一个汇编程序,从键盘输入两个数,求其和并输出。

解答:```assembly.datanum1 dw ?num2 dw ?sum dw ?.codemain procmov ax, @datamov ds, axmov ah, 1int 21h ;读取第一个数sub al, '0' ;将ASCII码转换为二进制数 mov num1, almov ah, 1int 21h ;读取第二个数sub al, '0' ;将ASCII码转换为二进制数 mov num2, aladd al, num1mov sum, aladd sum, '0' ;将结果转换为ASCII码mov ah, 2mov dl, sumint 21h ;输出结果mov ax, 4C00hint 21h ;程序结束main endpend main```第二题:需求:编写一个汇编程序,判断一个数是否是素数,并输出结果。

解答:```assembly.datanum dw ?.codemain procmov ax, @datamov ds, axmov ah, 1int 21h ;读取一个数sub al, '0' ;将ASCII码转换为二进制数mov num, almov bx, 2 ;用bx寄存器从2开始除mov cx, 0 ;用cx统计除数的个数loop_start:mov dx, 0mov ax, numdiv bx ;用ax除以bx,余数存在dxcmp dx, 0je loop_end ;如果余数为0,则跳出循环inc bx ;除数加1inc cx ;除数个数加1cmp bx, axjg loop_end ;如果除数大于被除数,跳出循环 jmp loop_start ;循环继续loop_end:cmp cx, 0je prime ;如果除数个数为0,则是素数jne not_prime ;否则不是素数prime:mov ah, 2mov dl, 'Y' ;输出判断结果为是素数int 21hjmp exitnot_prime:mov ah, 2mov dl, 'N' ;输出判断结果为不是素数int 21hexit:mov ax, 4C00hint 21hmain endpend main```通过以上两个题目的解答,我们可以看出汇编语言的编写方法和具体步骤。

汇编语言作业及参考答案

汇编语言作业及参考答案

汇编语言作业答案1.3什么是汇编语言源程序、汇编程序、目标程序?见教材P41.10数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0Dh、0aH对应的是什么字符?见教材P81.11计算机中有一个“‘编码,如果把它认为是无符号数,它是十进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?97,61h,a1.13什么是DOS和POM-BIOS?DOS:磁盘操作系统;POM-BIOS:可编程的基本输入输出系统2.3 举例说明CF和OF标志的差异。

见教材P20-212.5 什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达:(1)FFFFh:0 (2)40h:17h (3)2000h:4500h (4)B821h:4567h见教材P22-23 FFFF0h 417h 24500h BC777h2.6 8086有哪4种逻辑段,各种逻辑段分别是什么用途?见教材P232.10 说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。

(1)mov dx,[1234h] 直接寻址(2) mov dx,1234h 立即寻址(3) mov dx,bx 寄存器寻址(4) mov dx,[bx] 寄存器间接寻址(5) mov dx,[bx+123h] 寄存器相对寻址(6) mov dx,[dx+di] 基址变址寻址(7) mov dx,[bx+di+1234h] 相对基址变址寻址2.11 已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。

(1)mov ax,1200h 1200h(2) mov ax,bx 0100h(3) mov ax,[1200h] 2a4ch(4) mov ax,[bx] 1234h(5) mov ax,[bx+1100h] 2a4ch(6) mov ax,[bx+si] 5678h(7) mov ax,[bx][si+1100h] b765h2.15 已知SS=FFAOH、SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?mov ax,8057hpush ax SP=00B2 [00B1]=80hmov ax,0f79hpush ax SP=00B2 [00B2]=0f79hpop bx BX=0f79h SP=00B1pop [bx] SP=00B0h2.16给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al ,89h 不影响标志add al, al 见教材P38add al, 9dh 见教材P38cmp al, 0bch 见教材P40sub al, al 见教材P39dec al 见教材P39inc al 见教材P382.17设均为双字数据,分别存放在地址为的存储单元中,他们的运算结果存入单元。

2008年汇编语言程序设计专业上机操作要求及答案

2008年汇编语言程序设计专业上机操作要求及答案

2008年汇编语言程序设计专业上机操作要求及答案2008年汇编语言程序设计专业上机操作要求及答案上机操作要求一(上机环境的熟悉和DEBUG程序练习)一、熟悉DOS环境1、MS-DOS的启动:开始—程序—MS-DOS方式。

2、MS-DOS全屏方式和窗口方式的切换:“ALT”+“ENTER”。

3、MS-DOS工具栏的打开:“ALT”+空格键。

4、MS-DOS方式下的选定、复制和粘贴:利用菜单栏下”编辑”菜单项中的“标记”、“复制”和“粘贴”的功能来实现。

5、MS-DOS方式的退出:EXIT。

练习:进入MS-DOS方式,并将屏幕上显示的全部内容复制到一WORD文档中。

二、熟悉一些常用的DOS命令。

1、更改盘符,如:C:\WINDOWS>d:并按“ENTER”,显示:D:\>(盘符更改为D:)。

2、建立子目录(文件夹)MD,如C:\>MD FOX (在当前驱动器C盘下创建子目录FOX)。

3、显示当前目录CD,如:C:\>CD WINDOWS,显示:C:\WINDOWS>(即从当前目录C:\进入到C:\WINDOWS目录)。

4、显示磁盘目录的内容DIR,如:C:\WINDOWS>,显示的内容即为当前目录C:\WINDOWS中的所有内容。

5、返回上级目录,如:C:\WINDOWS>cd ..,显示C:\>(即从当前目录C:\WINDOWS返回到它的上级目录C:\)。

练习:在MS-DOS方式下,进入C:\WINDOWS\SYSTEM目录,并显示该目录下的所有内容,然后返回C盘的根目录(C:\)。

三、熟悉调试程序DEBUG.EXE的应用,练习DEBUG的常用命令(可参见课本P128-133)。

实践1:利用DEBUG.EXE的A、D、U命令,观察指令MOVAH,[BX+DI+50H],对应的机器码是什么?,该指令是几个字节的指令?并对机器码进行反汇编,观察对应的指令是什么?ADD [2345H][BX][DI],DX的机器码是什么? 该指令是几个字节的指令? 并对机器码进行反汇编,观察对应的指令是什么?实践2:在DEBUG.EXE方式下(利用A、G命令), 分析两个数相加(C8H+EFH)的结果,运用的指令为:mov AL,0efhadd AL,0c8h问题:(1).运算后两个数的和是多少?(提示:运算的结果在AL寄存器中)(2).6位状态标志位(AF,CF,OF,PF,SF,ZF)分别是多少?(3).当相加的两个数均为无符号数时运算的结果是否正确?为什么?(4).当相加的两个数均为带符号数时运算的结果是否正确?为什么?(5).相加的两个数分别为5B0AH, 4CA3H时,通过上机再回答(1)---(4)的问题。

汇编语言课后习题答案

汇编语言课后习题答案

汇编语⾔课后习题答案2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执⾏完后AX寄存器的内容。

(1)mov ax,1200h(2)mov ax,bx(3)mov ax,[1200h](4)mov ax,[bx](5)mov ax,[bx+1100h](6)mov ax,[bx+si](7)mov ax,[bx][si+1100h]〔解答〕(1)AX=1200H(2)AX=0100H(3)AX=4C2AH;偏移地址=bx=0100h(4)AX=3412H;偏移地址=bx=0100h(5)AX=4C2AH;偏移地址=bx+1100h=1200h(6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h(7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h〔习题2.2〕指出下列指令的错误(1)mov cx,dl(2)mov ip,ax(3)mov es,1234h(4)mov es,ds(5)mov al,300(6)mov[sp],ax(7)mov ax,bx+di(8)mov20h,ah〔解答〕(1)两操作数类型不匹配(2)IP指令指针禁⽌⽤户访问(3)⽴即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)⽬的操作数应为[SI](7)源操作数应为[BX+DI](8)⽴即数不能作⽬的操作数〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执⾏下⾯指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push axmov ax,0f79hpush axpop bxpop[bx]〔解答〕mov ax,8057hpush axmov ax,0f79hpush axpop bx;bx=0f79hpop[bx];DS:[0f79h]=8057h〔习题2.6〕给出下列各条指令执⾏后AL值,以及CF、ZF、SF、OF和PF的状态:mov al,89hadd al,aladd al,9dhcmp al,0bchsub al,aldec alinc al〔解答〕mov al,89h;AL=89h CF ZF SF OF PFadd al,al;AL=12h10011;10001001+10001001100010010add al,9dh;AL=0afh00101;00010010+1001110110101111cmp al,0bch;AL=0afh10101;10101111-10111100*01000011sub al,al;AL=00h01001dec al;AL=0ffh00101 ;00000000-00000001*11111111inc al;AL=00h01001 ;11111111+00000001*11111111必考:〔习题2.10〕指出下列指令的错误:(1)xchg[si],30h (2)pop cs(3)sub[si],[di](4)push ah(5)adc ax,ds(6)add[si],80h(7)in al,3fch(8)out dx,ah〔解答〕(1)xchg的操作数不能是⽴即数(2)不应对CS直接赋值(3)两个操作数不能都是存储单元(4)堆栈的操作数不能是字节量(5)adc的操作数不能是段寄存器(6)没有确定是字节还是字操作(7)in不⽀持超过FFH的直接寻址(8)out只能以AL/AX为源操作数〔习题2.11〕给出下列各条指令执⾏后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。

汇编语言习题答案

汇编语言习题答案

汇编语言习题答案第3章自测练习一、选择题(四选一)1.表示一条处理器指令所在存储单元的符号地址是C。

A 变量B 常量C 标号D 偏移量2.汇编语言中的变量有多种类型属性,但错误的类型是 B 。

A 字节型byteB 字符型charC 字型wordD 双字型dword3.执行mov bx,seg var指令,BX得到变量var的 B 。

A 物理地址B 段地址C 偏移地址D 内容4.MASM语句中,采用 C 分隔标号和指令。

A 逗号B 分号C 冒号D 空格5.欲设定从偏移地址100H开始安排程序,可使用 A 伪指令。

A org 100hB start=100hC start db 100hD start equ 100h6.与“mov bx,offset var”指令等效的指令是 D 。

A mov bx,varB 1ds bx,varC les bx,varD 1ea bx,var.7.下条语句buf db l0 dup(3 dup(?,10),3,10)汇编后,变量buf占有的存储单元字节数是 B 。

A 100B 80C 40D 208.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是B。

A 0B 0FFFFHC 1D 0FFH9.要求将A、B两个字符的ASCII码41H和42H顺序存放在连续两个字节存储单元中,可选用的语句是 A 。

A db`AB'B dw `AB'C db 0ABHD dw 0ABH10.在汇编语言程序中,对END语句叙述正确的是 C 。

A END语句是一可执行语句B END语句表示程序执行到此结束C END语句表示源程序到此结束D END语句在汇编后要产生机器码11.下面的数据传送指令中,错误的操作是D。

A mov ss:[bx+di],byte ptr 10hB mov dx,l000hC mov word ptr[bx],1000hD mov ds,2000h12.下面指令执行后,变量dab中的内容是 C 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A. 代码段 B. 数据段 C. 堆栈段 D. 附加段
15.已知SP=2000H,执行RET 2后(RET为段间返回指令),SP的值为( A )。
段间返回指令时远返回
近返回还是远返回执行的操作不同
如果是近返回:
SP=SP+2+m
如果是远返回:
SP=SP+4+m
16.
A.2006HB.2004HC.2002HD.1FFAH
MOV AX,4C00H
INT 21H
其实起作用的就是AH=4CH,意思就是调用INT 21H的4CH号中断,该中断就是安全退出程序。
CODE ENDS
END START
4.以下是用CALL指令来模拟实现INT 21H显示字符’B’的功能,请将程序补充完整。(每空3分共9分)
CODE SEGMENT
OR指令:AB变量中只要有一个变量取值为1,则它们或运算结果就是1
80H就是1000 000,所以最高位一定是1,其他位根据A变量决定
A. XOR CL, 80H B. OR CL, 80H C. AND CL, 7FH D. NOT CL
10.从键盘输入大写字母A,则在寄存器AL中存放的值为( C )。
2)将BX中的数转换成二进制的方法是,将BX寄存器中的数不断除以215,214,213,212,…21,20所得商即为二进制的各位数。
阅读程序,将其补充完整(每空3分共15分)。
DATA SEGMENT
DIVI DW 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1 ;除数数组
CALL指令;调用小程序,跳转到BX指定的位置;
MOV AH,4CH
INT 21H
CODE ENDS
END START
5.已知:(BX) = 1300H, (SS)=5400H,(SI) = 4000H,( DS )=1408H,(ES) = 2084H,(SS)=4100H,(BP)=2100H,(AX)=3500H,试求出以下指令源操作数的物理地址(用十六进制表示)。(每小题3分,共6分)
7.中断向量表中地址为0:124H的中断类型号是( C )。
中断类型号乘与4等于向量地址,所以124H除于4=49H,注意16进制的算法
A. 48H B. 4AH C. 49H D. 50H
8.取变量或标号偏移地址的伪操作符是( A )。
A. OFFSET D. SEG
9.要使寄存器CL的最高位为1其它位保持不变,应使用的指令是( B )。
A字母对应的ASCII码为65,65化为16进制为41H
A. 31H B. 51H C.41H D.61H
11.若A,B为无符号数,执行CMP A,B指令后,要求A>B时转移的条件指令为(B )。
A. JLE B. JA C. JBE D. JG
无符号数比较:ja/jb
有符号数比较:jg/jl
12.下列指令执行后总是使CF=0,OF=0的是( B )。
19. 将内存中的内容解释为机器指令和对应的汇编指令的DEBUG命令是( B )。
A. PB. UC. ED. A
20. 用来回送分配给变量字节数的数值回送操作符是( B )。
A. ORGB. SIZEC. EVEND. LENGTH
二、判断题(每小题1分,共10分,正确的划√,错误的划×)
1.IN FFH, AL(X)
1BB0:0002 8ED0 MOV SS, AXSS=1BB0H
1BB0:0004 BC0001 MOV SP,1100SP=1100;
1BB0:0007 BB1000 MOV BX, 0010BX=0010
1BB0:000A 53 PUSH BXBX 不变
1BB0:000B E80300 CALL 0011 跳到1BB0:0011(BX) = 000EH
(2分)(SS) = 1BB0H
(2分)(SP) = 1100H
(2分)ZF= 0
(2分)CF= 0
(2分)OF= 0
3.以下是将BX寄存器中的数据以二进制数的形式显示在屏幕上的程序。其编程思路是:
1)设置SI为除数数组指针,BX寄存器中的数的最大范围为0~FFFFH,最多为16位二进制数,所以置循环次数CX=16。
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,16
MOV BX, 12AFH
MOV AX,BX
( 1 )LEA SI, DIVI
NEXT: XOR DX,DX
( 2 )DIV WORD PTR [SI]
ASSUME CS:CODE
START:MOV AH,02H
MOV DL, 'B'
(1)MOV BX,0
MOV DS, BX
MOV BX,0;MOV DS,BX;是因为中断向量表在0:0处,所以要把DS置为0才能取得正确的中断地址
(2)MOV BX,21H*4
(3)CALL DWORD PTR[BX]
PUSH DX将余数保持入栈内
OR AL,30H将ASCII码转换成0,1显示,相当于加48否则会显示笑脸
MOV DL,AL
MOV AH,2
INT 21H
( 3 )INC SIINC SI 2次,因为是字
INC SI
( 4 )POP AX将余数弹出来付给AX,AX变为新的除数
( 5 )LOOPNEXT
IN指令IN AL,PORK或者INAX,PORK
OUT指令OUT PROT,AL或者OUT PORT,AX
所以很明显,FFH是立即数,那么应该为PORT,符合OUT指令,不符合IN指令
2.MOV DS,100(X)
不可以对DS直接赋值
3.MOVBYTEPTR[AX],29H(X)
内存寻址只能是bx,si,di,bp
(1)、MOV AX, ES:[BX]
2084H*16->20840H;
20840H+1300H=21B40H
(2)、MOV AX, [BP][SI]
16d×(SS)+(BP)+(SI)
凡使用BP,ESP,EBP时,其默认段为SS段,其他寄存器默认段为DS寄存器
5400H*16->54000H
54000H+2100H+4000H=5A100H
16.CALL指令在执行时,进入堆栈保存的寄存器的先后顺序是(D)。
A. IP、CSB. IP、CS、标志寄存器
C.CS、IP、标志寄存器D. CS、IP
17.使DF=1的指令是(A)。
A. STDB. STIC. CLDD. CLI
18.指令IDIV BX执行时商存放在(D)。
A. DX寄存器中B. DX和AX寄存器中C.BX寄存器中D. AX寄存器中
1BB0:000E 03C3 ADD AX, BX
1BB0:0010 F4 HLT ;停机指令,使机器暂停工作
1BB0:0011 5B POP BX BX不变
1BB0:0012 33C0 AND AX, AXAND 1BB0H,1BB0H,所以AX不变
1BB0:0014 C3 RET
程序段执行后(AX)=?(BX)=? (SS)= ? (SP)=? ZF = ? CF=? OF=? (每问2分,共14分)
包括除了not至另外的所有逻辑运算指令(AND,OR,XOR,TEST)
A.NEG B.TEST C. NOT D. DEC
13.在使用DOS功能调用INT 21H时,要在屏幕上显示一个字符‘2’,应将AH设置为( C )。
A. 09HB. 31HC. 02HD. 01H
14. 指令MOV AX,[SI+BX]中源操作数隐含的段为( B )。
MOV DX,208H 端口地址在DX中
IN AL,DX 寄存器间接寻址,将字节通过DX中的端口地址传入到AL,I/O指令中使用的寄存器必须是AL或者AX
MOV DL,AL
2、分析下列程序段,回答指定问题。
1BB0:0000 8CC8 MOV AX, CS明显1BB0H就是当前CS的值,所以AX=1BB0H
4. ADDWORD PTR[BP],2(r)
5.ROL AX, 1(r)
6.MOVAL,129(X)
明显大于>128了
7.POPF AX(x)
8.NEG BX求补(r)
9.PUSH CS(r)
10. MOVAX,[SI + BX-200H](r)
三、综合题(共50分)
1.写出将字节端口208H中内容输入到DL寄存器的指令(不能超过三条指令)。(6分)
相关文档
最新文档