汇编语言3(清华大学沈美明).
汇编语言清华大学沈美明
![汇编语言清华大学沈美明](https://img.taocdn.com/s3/m/2481390b011ca300a7c39013.png)
8E
MOV AH,4CH
D8
INT 21H
…
COSEG ENDS
…
END START
B4
4C
CD
第四章 汇编语言
213
4.2、伪操作
• 汇编语言源程序由汇编语言语句组成: – 指令语句:也称可执行语句。每条语句都有对应的 目标代码,代表计算机具有的一个基本能力。 – 伪指令语句:用于指示汇编程序如何汇编源程序的 语句。部分语句产生目标代码,部分语句不产生目 标代码。 – 宏指令语句:为提高编程效率而使用的扩展指令。
程序名.asm 程序名.obj 程序名.exe
汇编语言 源程序
目标码 程序
可执行的目 标码程序
编辑程序
汇编程序 连接程序
第四章 汇编语言
2
19
DATA SEGMENT
COSEG SEGMENT
2B
A B
DB DB
25 43
数 据
ASSUME CS:COSEG, DS:DATA,SS:
4C 00
C
DB 76 段 STACK1第章 汇编语言64.2.2、段定义伪操作
1、完整的段定义伪指令 • 语句格式:
段名 SEGMENT [定位类型][组合类型][‘类别名’] 本段语句序列 (指令或数据) 段名 ENDS • 功能:在内存中设置一个逻辑段。 • 定位类型:表示某段装入内存时,对段起始边界的要求。 有四种选择:
– PAGE(页):段从一个“页”的边界开始,256个字节为一页,段 起始地址低8位为0。
• 指令语句与伪指令语句格式: [标识符] 操作符 操作数 [;注释]
– 标识符:任选段。指令语句为标号,以:结束。
• 字符个数为1~31个; • 第一个字符必须是字母、“?”、“@”、或“—”; • 不得使用系统保留字。
微机原理与应用
![微机原理与应用](https://img.taocdn.com/s3/m/7cb1b715a9956bec0975f46527d3240c8447a1f1.png)
1.3 微型计算机的工作原理
代表:采用8088CPU的IBM PC机,是计算机发展的第二个里 程碑,进一步推动了微型计算机的发展和普及,带动了全社会 的微型计算机热。
二、微型计算机的发展历程
第四代:32位机发展阶段(1985-1993) 代表产品:Intel 80386、80486 特点:内存容量达到1M以上,硬盘技术不断提高,发展了32 架构和32位的总线结构,各种品牌机涌向市场,如COMPAQ、 DELL等以及国内的一些名牌产品。 应用:办公自动化、网络环境。
一、计算机的发展历程
第四代:大规模集成电路计算机时代 大规模集成电路,集成度越来越高;软件上采用数据库和
软件工程,把软件设计提高到工程设计高度提出了规范化设计 方法。
第五代:“非冯。诺伊曼”计算机时代。 冯。诺伊曼结构具有程序存储和程序的顺序执行的特点。
第六代:神经网络计算机时代,光计算机时代,生物计算机时 代。
系统软件依赖于机器,应用软件更接近用户业务。
1.3 微型计算机的工作原理
四、计算机的基本操作过程
计算机的硬件是运行程序的基础,存储器既能存 储程序又能存储数据。
指令的操作包括: 基本运算 存储器之间的信息交换 存储器与外设的信息交换
一、基本概念
指令——计算机的每种基本运算或操作称为一条指令。
①计算机能直接完成两数加、减、逻辑乘、逻辑或以及数的取反、 取负、传输等许多基本运算和操作。 ②指令在微处理器中以代码形式出现并实施控制。
8086汇编语言(沈美明 温冬娟版)复习资料(附答案)
![8086汇编语言(沈美明 温冬娟版)复习资料(附答案)](https://img.taocdn.com/s3/m/b4291b02bb68a98271fefadb.png)
汇编语言复习资料第1、2章微处理器的结构和存储器组成1、程序设计语言分哪三类?【机器语言、汇编语言和高级语言】2、二进制数转十进制、十六制数、十进制数转二进制数、十六制数转十进数。
3、十进制数的压缩和非压缩BCD码表示方法。
4、计算机显示、打印字符的编码一般采用什么码。
【ASCⅡ码】5、8086微处理器的功能结构分哪两大部件。
【总线接口单元BIU和执行单元EU;BIU负责与存储器接口,EU部分负责指令的执行。
】6、8086有哪些通用寄存器和段寄存器?哪些可即做8位又可以作16位通用寄存器?哪些在指令中可以装偏移地址?【通用寄存器:八位:AL、AH、BL、BH、CL、CH、DL、DH十六位:AX、BX、CX、DX、DI、SI、SP、BP三十二位:EAX、EBX、ECX、EDX、EDI、ESI、ESP、EBP既可做八位又可作十六位:AX、BX、CX、DX 段寄存器:SS、CS、DS、ES、FS 】7、掌握实模式下的内存分段管理方法。
8、堆栈的基本操作有哪两种,操作原则是什么。
对堆栈完成进出栈操作后,堆栈栈顶指针SP如何改变。
9、微机的总线按功能分为哪三大总线。
【地址总线AB、数据总线DB、控制总线CB 】10、8086微机内存是分段管理的,这样存储器单元的逻辑地址分为哪两个两部分,计算为物理地址公式是什么?【逻辑地址分为段基址和偏移量。
物理地址=10H*段基址+偏移量】11、标志寄存器中有哪些状态标志位和控制标志位,中文名称和符号分别为什么?有什么作用?【状态标志位:(1)辅助进位标志AF 这个标志用于十进制算术运算指令中。
( 2) 进位标志CF 这个标志主要用于多字节数的加、减法运算。
(3)溢出标志OF 多用于算术运算中。
(4) 符号标志SF 它的值与运算结果的最高位相同。
(5) 奇偶标志PF 这个标志可用于检查在数据传送过程中是否发生错误。
(6) 零标志ZF 若运算的结果为0,则ZF=1,否则ZF=0。
《汇编语言程序设计》习题答案(第二版,沈美明,温冬婵,清华大学出版社)
![《汇编语言程序设计》习题答案(第二版,沈美明,温冬婵,清华大学出版社)](https://img.taocdn.com/s3/m/17606c6c69eae009581bec9d.png)
汇编语言程序设计(第二版)第二章1、答:直接由指令指定的I/O端口数为256个。
2、答:3、答:字节单元:(30022H)= AB H,(30024H)= EF H字单元:(30021H)= AB34 H,(30022H)= CDAB H。
4、答:3017:000A的存储单元的物理地址是3017AH,3015:002A的存储单元的物理地址是3017AH,3010:007A的存储单元的物理地址是3017AH。
5、答:该程序的第一个字的物理地址是0AAA40H。
6、答:条件标志OF、SF、ZF、CF的值依次分别为0、0、0、0。
7、答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、SP、BP、DI、SI(注意:学生尽量不要用SP参与加减运算)(2)CX(3)DX、AX、AH、AL(4)CS、DS、ES、SS(5)FLAGS(6)IP(7)SS、SP、BP8、答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、ES、SS。
9、答:唯一正确的是D。
第三章1。
.(1)立即寻址没有(2)直接寻址 7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址 637DH(5)使用BX的寄存器相对寻址 0D5F0H(6) 基址变址寻址 8E18H(7)相对基址变址 004FH2 2。
根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2) ADD AL,[BX][SI](3) ADD [BX][0B2H], CX(4) MOV AX,2A59H ADD [0524H] ,AX(5) ADD AL ,0B5H3。
(1)寄存器间接寻址MOV BX,OFFSET [BLOCK][0AH]MOV DX ,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,[BX][SI]4现有(DS )=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器的内容。
《80x86汇编语言程序设计》教案及答案
![《80x86汇编语言程序设计》教案及答案](https://img.taocdn.com/s3/m/29002893f12d2af90342e699.png)
《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:20XX年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。
它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。
附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,20XX年(教材)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 章基础知识41.1进位计数制与不同基数的数之间的转换41.2二进制数和十六进制数的运算61.3计算机中数和字符的表示61.4几种基本的逻辑运算7第 2 章80X86计算机组织72.180X86微处理器72.2基于微处理器的计算机系统构成82.3中央处理机82.4存储器102.5外部设备11第 3 章80X86的指令系统和寻址方式113.180X86的寻址方式113.2程序占有的空间和执行时间133.380X86的指令系统13第 4 章汇编语言程序格式294.1汇编程序功能294.2伪操作304.3汇编语言程序格式334.4汇编语言程序的上机过程36第 5 章循环与分支程序设计385.1循环程序设计385.2分支程序设计395.3如何在实模式下发挥80386及其后继机型的优势39第 6 章子程序结构406.1子程序的设计方法406.2子程序的嵌套426.3子程序举例42第7 章高级汇编语言技术427.1宏汇编427.2重复汇编447.3条件汇编44第8 章输入/输出程序设计458.1I/O设备的数据传送方式458.2程序直接控制I/O方式468.3中断传送方式46第9 章BIOS和DOS中断499.1键盘I/O499.2显示器I/O519.3打印机I/O529.4串行通信口I/O53第10 章图形与发声系统的程序设计5410.1显示方式5410.2视频显示存储器5410.3 EGA/VGA 图形程序设计5510.4 通用发声程序5610.5 乐曲程序57第 11 章 磁盘文件存取技术5711.1 磁盘的记录方式5811.2 文件代号式磁盘存取5911.3 字符设备的文件代号式I/O6011.4 BIOS 磁盘存取功能61附录:《IBM —PC 汇编语言程序设计》习题参考答案61第 一 章.习题61第 二 章.习题62第 三 章.习题63第 四 章.习题77第 五 章.习题82第 六 章.习题100第 七 章.习题113第 八 章.习题119第 九 章.习题125第 十 章.习题128第 十一 章.习题138第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。
汇编语言程序设计 教学大纲
![汇编语言程序设计 教学大纲](https://img.taocdn.com/s3/m/848641c8b90d6c85ed3ac695.png)
汇编语言程序设计一、课程说明课程编号:390226Z10课程名称(中/英文):汇编语言程序设计/ Assembly Language Programming课程类别:专业选修课学时/学分:32/2先修课程:计算机系统基础,高级程序设计语言适用专业:软件工程教材、教学参考书:[1] 汇编语言,王爽主编,北京:清华大学出版社,2008[2] Intel汇编语言程序设计(第四版),Kip R.Irvine,北京:电子工业出版社,2004[3] 汇编语言,郑晓薇,北京:机械工业出版社,2009[4] IBM-PC 汇编语言程序设计,沈美明、温冬婵主编,北京:清华大学出版社,2001[5] 汇编语言程序设计实验设计指导书,沈美明主编,北京:清华大学出版社,2003二、课程设置的目的意义《汇编语言程序设计》课程是软件工程专业本科生选修专业基础课,对于学生深刻理解计算机原理,建立完整的计算机系统的概念至关重要。
课程主要介绍Intel80X86汇编语言寻址方式与指令系统;汇编语言源程序的构成;顺序、分支、循环、子程序等程序设计以及中断程序设计方法。
通过教学,使学生掌握一种典型的汇编指令系统,具有汇编语言程序设计与调试的能力,为后续课程学习及以后系统软硬件开发应用奠定良好的基础。
三、课程的基本要求通过本课程的学习,要求学生能够掌握汇编语言程序设计与调试的能力,为更深入地学习和今后从事软件工程实践打下良好的基础。
具体要求如下:(一)知识学习要求1、掌握计算机中数的表示,各寄存器的名称和用途,存储器分段结构,物理地址、逻辑地址的概念,物理地址的形成,对应培养方案“培养要求”1-①-B;2、掌握各种寻址方式,对应培养方案“培养要求”1-①-B;3、掌握每一条指令的格式、功能和使用方法,并且分析各种指令执行后的结果,对应培养方案“培养要求”1-①-B;4、学会使用各种操作数运算符,对应培养方案“培养要求”1-①-B;5、掌握常用伪指令的格式和功能,对应培养方案“培养要求”1-①-B;6、掌握汇编语言源程序的构成,汇编语言上机调试运行过程以及常用的DEBUG 命令,对应培养方案“培养要求”1-②-B;7、掌握顺序、分支、循环三种基本的程序结构,利用比较和条件转移指令实现程序分支,利用跳转表实现多路分支,循环程序控制方法和多重循环程序设计,对应培养方案“培养要求”1-①-B;8、掌握子程序的程序设计方法以及主程序与子程序之间的参数传递,对应培养方案“培养要求”1-①-B;9、掌握中断程序设计方法及DOS与BIOS中断调用方法,对应培养方案“培养要求”1-①-B。
汇编语言清华大学沈美明
![汇编语言清华大学沈美明](https://img.taocdn.com/s3/m/2481390b011ca300a7c39013.png)
4.1、汇编语言的功能
汇编语言的建立及汇编过程
• 汇编语言是面向机器结构的低级程序设计语言,是把机 器语言符号化。
• 用汇编语言编的程序称为汇编语言源程序,源程序必须 经过“汇编”,生成目标代码,经过“连接”后生成执 行文件,方可直接运行。
• 汇编语言源程序结构:
• 例1:用汇编语言编写:求解Y=2(A+B)-C的程序
STR1 DB ‘STR,‘G’
STR2 DW ‘ST’,‘RI’,‘G’ STR3 DD ‘ST’, ‘G’
STR1 ‘S’ STR2 ‘T’
‘R’
单元分配原则:
‘G’
1、DB单个字符串最多255个字符,按顺序存放;
2、DW 单个字符串最多2个字符,按高地址存高 字节代码存放;
STR3 ‘T’ ‘S’
– 系统用结束伪指令装入。格式 :END 起始地址
– 通过分支指令修改时装入。如CALL、JMP等。
第四章 汇编语言
10
4.2.3、程序的结束 使用 END
第四章 汇编语言
11
4.2.4、数据定义及存储器的分配伪指令
汇编语言的数据种类: – 常量 – 变量 – 标号
第四章 汇编语言
12
变量:实际为内存单元的数据,并为该存储单元取 名字。其数据可以改变。
第四章 汇编语言
6
4.2.2、段定义伪操作
1、完整的段定义伪指令 • 语句格式:
段名 SEGMENT [定位类型][组合类型][‘类别名’] 本段语句序列 (指令或数据) 段名 ENDS • 功能:在内存中设置一个逻辑段。 • 定位类型:表示某段装入内存时,对段起始边界的要求。 有四种选择:
– PAGE(页):段从一个“页”的边界开始,256个字节为一页,段 起始地址低8位为0。
《汇编语言程序设计》课程教学大纲
![《汇编语言程序设计》课程教学大纲](https://img.taocdn.com/s3/m/e330941d10a6f524ccbf85e5.png)
河北科技师范学院继续教育学院关于修编成人教育教学大纲的意见教学大纲是教学法规,是落实培养目标和教学计划的基本文件。
它以纲要形式规定了课程的基本内容、性质、任务及课程的深度、广度和知识范围,规范教学环节、教学进程和教学方法上的基本要求。
是指导教师选编教材、组织课程教学,对学生实施考核的重要内容,也是教学管理部门进行教学评价的重要依据,评估课程教学质量的重要标准。
制订教学大纲是一项严谨和要求较高的工作,要根据专业培养目标要求、国内外水平及校内外具体条件、学生知识基础及能力素质来制订,既不能脱离总体目标,又要有个性特色,还要符合成人学习特点。
为此提出以下原则意见:一、制订教学大纲的原则1.教学大纲要准确贯彻教育思想和教学计划所确定的培养目标,明确体现课程在教学计划中的地位和作用,服从课程结构和教学计划的整体要求。
2.教学大纲内容应包括本课程的教学目的、教学内容、基本要求、学时分配、与其他课程的联系、参考书目等。
3.教学内容安排应循序渐近,注意课程的系统和完整以及与有关课程的联系和配合,解决好课程间的衔接和分工,避免相互矛盾、相互脱节和不必要的重复。
基础课以应用为目的,掌握必备的基础知识,同时注意与中学课程的衔接。
4.重视基本技能训练和实际运用能力培养,使传授知识和培养能力有机结合,增强综合性、设计性、应用性实践教学,减少演示性、验证性实验。
5.要贯彻“少而精”原则,注意教学内容、份量适当、重点突出,反映现代科技新发展生产新成就,但不应片面求新、求多,对尚不成熟的教学内容,不要列入。
6.遵循教学基本规律,考虑施教对象特点,对大纲中重点与一般、理论与实践,要认真分析,进行科学合理的安排,要具有较强的针对性、实用性和可操作性。
7.教学大纲由专业教学部组织教师依据上述原则编写,经教学部主任审定,成人教育学院批准执行。
每门课程均要编写教学大纲,教师在教学过程中必须严格执行教学大纲要求。
二、教学大纲基本内容教学大纲的基本内容包括以下几部分:1、课程基本概况包括课程名称、课程学时(总学时,其中面授,自学,实验)、开设学期、适用层次、适用专业、先修课程、后续课程七部分。
汇编课后题答案清华大学出版社沈美明版)
![汇编课后题答案清华大学出版社沈美明版)](https://img.taocdn.com/s3/m/a8d508041ed9ad51f11df243.png)
第一章. +习题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=00;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=10;OF=01.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大...
![IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大...](https://img.taocdn.com/s3/m/b5d50bc46f1aff00bed51ee3.png)
IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第六章答案2006-11-04 22:022、答:(1) NAME1 NAMELIST < >(2) MOV AX,DATA ;假设结构变量NAME1定义在数据段DATA中MOV DS,AXMOV ES,AX;MOV AH,10LEA DX,NAME1INT 21H;MOV CL,NAME1.ACTLENMOV CH,0LEA SI,INLEA DI,DISPFILECLDREP MOVSB6、答:SKIPLINES PROC NEARPUSH CXPUSH DXMOV CX,AXNEXT:MOV AH,2MOV DL,0AHINT 21HMOV AH,2MOV DL,0DHINT 21HLOOP NEXTPOP DXPOP CXRETSKIPLINES ENDP7、答:dseg segmentnum dw 76,69,84,90,73,88,99,63,100,80n dw 10s6 dw 0s7 dw 0s8 dw 0s9 dw 0dseg endscode segmentmain proc farassume cs:code, ds:dseg start:push dssub ax, axpush axmov ax, dsegmov ds, axcall sub1retmain endpsub1 proc nearpush axpush bxpush cxpush simov si, 0mov cx, nnext:mov ax, num[si]mov bx, 10div blmov bl, alcbwsub bx, 6sal bx, 1inc s6[bx]add si,2loop nextpop sipop cxpop bxpop axretsub1 endpend start8、答:data segmentmaxlen db 40n db ?table db 40 dup (?)char db 'a' ; 查找字符’a’evenaddr dw 3 dup (?)data endscode segmentassume cs:code, ds:datamain proc farstart:push dsmov ax, 0push axmov ax, datamov ds, axlea dx, maxlenmov ah, 0ahint 21h ; 从键盘接收字符串mov addr, offset tablemov addr+2, offset nmov addr+4, offset charmov bx, offset addr ; 通过地址表传送变量地址call count ; 计算CHAR的出现次数call display ; 显示retmain endpcount proc near ; count子程序push sipush dipush axpush cxmov si, [bx+2]mov cl, byte ptr[si]mov ch, 0mov si, [bx+4]mov al, byte ptr[si]mov bx, 0again:cmp al, byte ptr[di]jne l1inc bxl1: inc diloop againpop cxpop axpop dipop siretcount endpdisplay proc near ; display子程序call crlf ; 显示回车和换行mov dl, charmov ah, 2int 21hmov dl, 20hmov ah, 2int 21hmov al, bland al, 0fhadd al, 30hcmp al, 3ahjl printadd al, 7print:mov dl, alint 21hcall crlfretdisplay endpcrlf proc near ; crlf子程序mov dl, 0dhmov ah, 2int 21hmov dl, 0ahmov ah, 2int 21hretcrlf endpcode endsend start。
汇编课后题答案(清华大学出版社沈美明版)
![汇编课后题答案(清华大学出版社沈美明版)](https://img.taocdn.com/s3/m/38629ff1da38376baf1fae3a.png)
汇编课后题答案(清华大学出版社沈美明版)第一章.+习题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=00001001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=01010101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=01010101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=10101011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=10101011B+0100 1100B=11110111B=0F7H;CF=0;OF=01.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
IBMPC汇编语言程序设计课后习题答案(第二版沈美明)
![IBMPC汇编语言程序设计课后习题答案(第二版沈美明)](https://img.taocdn.com/s3/m/9ad66336bb4cf7ec4bfed0dd.png)
(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=7FFFH将以下二进制数转换为十六进制数和十进制数:(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=255将以下十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(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=7FFFH将以下二进制数转换为十六进制数和十进制数:(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=255将以下十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=4660完成以下十六进制数的运算,并转换为十进制数进行校核:(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=217893以下各数均为十进制数,请用8位二进制补码计算以下各题,并用十六进制数表示其运算结果。
IBM-PC汇编语言程序设计(第2版)课后参考答案沈美明 温冬婵
![IBM-PC汇编语言程序设计(第2版)课后参考答案沈美明 温冬婵](https://img.taocdn.com/s3/m/5a8574aaf524ccbff12184ac.png)
2.9 请将下列左边的项和右边的解释联系起来(把所选字母放在括号中):
(1) CPU
(M) A.保存当前栈顶地址的寄存器。
(2) 存储器
(C)
B.指示下一条要执行的指令的地址。
(3) 堆栈
(D)
C.存储程序、数据等信息的记忆装置,微机有 RAM 和 ROM 两种。
(4) IP
(B)
D.以后进先出方式工作的存储空间。
1.7 下列各数均为用十六进制表示的 8 位二进制数,请说明当它们分别被看作是用补码表示的数或字 符的 ASCII 码时,它们所表示的十进制数及字符是什么?
(1) 4F 答:(1)
(2) (3) (4)
(2) 2B
(3) 73
4FH 表示的十进制数为 79,4FH 表示的字符为 O;
2BH 表示的十进制数为 43,2BH 表示的字符为 +;
1.6 下列各数为十六进制表示的 8 位二进制数,请说明当它们分别被看作是用补码表示的带符号数或 无符号数时,它们所表示的十进制数是什么?
(1) D8
(2) FF
答:(1) D8H 表示的带符号数为 -40,D8H 表示的无符号数为 216;
(2) FFH 表示的带符号数为 -1, FFH 表示的无符号数为 255。
(4) 7AB×6F
1.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
汇编语言1(清华大学沈美明)
![汇编语言1(清华大学沈美明)](https://img.taocdn.com/s3/m/c5c0a44de518964bcf847c26.png)
注意: 注意: 端口号<256时,可以长短 端口号< 时 方式均可; 方式均可; 端口号≥256时,必须使用短 端口号 时 方式。 方式。
长格式: 长格式: OUT (IMM8+1),(IMM8) 短格式: 短格式:OUT DX,AL 操作: 操作: AL (DX) (DX)
短格式: 短格式:OUT DX,AX 操作: 操作: (DX+1),(DX) AX
3.3.1.1、通用数据传送指令之:XCHG指令 、通用数据传送指令之: 指令
格式: 格式: XCHG DST 通同寄存器 存储器 操作: 操作: DST SRC SRC 通用寄存器 存储器
注意: 不能同时为存储器,至少要有一个为寄存器。 注意: 不能同时为存储器,至少要有一个为寄存器。 不能为立即数 不能为段寄存器和IP 不能为段寄存器和IP 不影响标志位
OF DF IF
TF SF ZF
AF
PF
CF
3.3.1.4 、标志位传送指令之:POPF 标志位传送指令之:
功能:将堆栈内容送到PSW 功能:将堆栈内容送到PSW 格式: 格式:POPF 操作:FLAG 操作: SP (SP+1),(SP) SP+2 注意: 注意: 默认FLAG寄存器 寄存器 默认 影响标志位
3.3.1.1、通用数据传送指令之:MOV指令 、通用数据传送指令之: 指令
格式: 格式: MOV DST 通同寄存器 存储器 段寄存器 SRC 通用寄存器 存储器 段寄存器 立即数
MOV指令注意 指令注意
1、源和目的操作数必须类型一致。 源和目的操作数必须类型一致。 2、立即数传送到存储单元,必须指明字或字节操作。 立即数传送到存储单元,必须指明字或字节操作。 例:MOV WORD PTR[SI],00AH MOV BYTE PTR[SI],0BH 3、两个存储器之间不能传送 4、目的寄存器为段寄存器时,源操作数不能是立即数和段寄存器 目的寄存器为段寄存器时, 5、CS、IP不能作为目的操作数 CS、IP不能作为目的操作数 6、不改变标志
清华大学汇编语言(沈美明,温冬婵)课后答案
![清华大学汇编语言(沈美明,温冬婵)课后答案](https://img.taocdn.com/s3/m/f5e097d7360cba1aa811da91.png)
汇编语言程序设计(第二版)(清华大学IBM-PC 汇编语言程序设计(第二版)沈美明温冬婵编著)第二章1、答:直接由指令指定的I/O端口数为256个。
2、答:3、答:字节单元:(30022H)= AB H,(30024H)= EF H字单元:(30021H)= AB34 H,(30022H)= CDAB H。
4、答:3017:000A的存储单元的物理地址是3017AH,3015:002A的存储单元的物理地址是3017AH,3010:007A的存储单元的物理地址是3017AH。
5、答:该程序的第一个字的物理地址是0AAA40H。
6、答:条件标志OF、SF、ZF、CF的值依次分别为0、0、0、0。
7、答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、SP、BP、DI、SI(注意:学生尽量不要用SP参与加减运算)(2)CX(3)DX、AX、AH、AL(4)CS、DS、ES、SS(5)FLAGS(6)IP(7)SS、SP、BP8、答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、ES、SS。
9、答:唯一正确的是D。
.第三章2、答:(1)ADD DX, BX(2)ADD AL, [BX][SI](3)ADD [BX+0B2H], CX(4)ADD [0524H], 2A59H(5)ADD AL, 0B5H3、答:(1)MOV BX, OFFSET BLOCK + 0AHMOV DX, [BX](2)MOV BX, 0AHMOV DX, BLOCK[BX](3)MOV BX, OFFSET BLOCKMOV SI, 0AHMOV DX, [BX][SI]4、答:(1)1200H(2)0100H(3)4C2AH(4)3412H(5)4C2AH(6)7856H(7)65B7H6、答:MOV BX, 2000HLES DI, [BX]MOV AX, ES : [DI]7、答:(1)064DH(2)0691H(3)05ECH9、答:(1)MOV AX, [ BX+0CH ]MOV ZERO, AX(2)MOV AX, ARRAY[BX]MOV ZERO, AX10、答:(1)(AX)= 1234H(2)(AX)= 0032H11、答:(AX)= 1E00H12、答:LEA BX, CSTRINGMOV DL, [BX]MOV DH, [BX+6]13、答:14、答:LES BX, [2000]MOV AX, ES:[BX]16、答:(1)74D4H SF=0 ZF=0 CF=0 OF=0 (2)A5C1H SF=1 ZF=0 CF=0 OF=1 (3)3240H SF=0 ZF=0 CF=1 OF=0 (4)0000H SF=0 ZF=1 CF=1 OF=0 17、答:(1)0C754H SF=1 ZF=0 CF=1 OF=0 (2)12B0H SF=0 ZF=0 CF=0 OF=0 (3)45B0H SF=0 ZF=0 CF=0 OF=1 (4)9F24H SF=1 ZF=0 CF=0 OF=0 21、答:(1)MOV AX, ZSUB AX, XADD AX, WMOV Z, AX(2)MOV BX, XADD BX, 6MOV CX, RADD CX, 9MOV AX, WSUB AX, BXSUB AX, CXMOV Z, AX(3)MOV AX, W IMUL XMOV BX, YADD BX, 6IDIV BXMOV Z, AXMOV R, DX22、答:NEG DXNEG AXSBB DX, 016、答:MOV AX, AMOV DX, A+2 TEST DX, 8000H JZ STORE ; 为正NEG DXNEG AXSBB DX, 0STORE : MOV B, AX MOV B+2, DX17、答:(1)MOV AL, SSUB AL, 6DASADD AL, VDAAMOV U, AL(2)MOV AL, ZSUB AL, UDASMOV U, ALMOV AL, XADD AL, WDAASUB AL, UDASMOV U, AL23、答:(1)(BX)= 9AH (2)(BX)= 61H (3)(BX)= 0FBH (4)(BX)= 1CH (5)(BX)= 0 (6)(BX)= 0E3H 26、答:把(DX)(AX)中的双字左移四位(乘以16)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用途:用于控制处理器的操作。
分类: 标.1、标志位操作指令之CLC/STC/CMC
功能:用于控制进位标志CF的指令
指令 CLC STC CMC
功能 CF=0 CF=1 CF=/CF
3.3.6.1 、标志位操作指令之CLD/STD
功能:用于控制方向标志DF的指令
指令 CLD STD
功能 DF=0 DF=1
3.3.6.1 、标志位操作指令之CLI/STI
功能:用于控制中断标志IF的指令
指令 CLI STI
功能 IF=0 IF=1
3.3.6.2 、微处理器协调指令之HLT
功能:使程序停止执行,进入暂停状态。 格式: HLT 结束HLT的情况: 1、系统复位 2、NMI中断请求有效 3、IF=1且INTR 中断请求有效 注意:不影响标志位
中断结束后执行下面程序
3.3.6.2 、微处理器协调指令之WAIT
功能:使程序停止执行,进入暂停状态。 格式: WAIT 结束WAIT的情况: TEST 引脚=0 注意:不影响标志位 WAIT期间,CPU不 执行任何操作,直到出现 外部中断,进入中断服务 程序。中断返回后仍然回 到WAIT指令。
3.3.6.2 、微处理器协调指令之LOCK
功能: 禁止其它微处理器使用总线 格式: LOCK指令 停止LOCK的情况: 指令不再使用LOCK前缀 注意:不影响标志位
3.3.6.2 、微处理器协调指令之NOP
功能:空操作 格式: NOP 注意:不影响标志位 执行结束后,执行下一条指令