汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版 卜艳萍)参考答案
汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版)

习题参考答案

第1章汇编语言基础知识

思考与练习

1.计算机系统分哪几个层次?简述计算机系统的硬件结构。

1)数字逻辑层

2) 微体系结构层

3) 指令系统层

4) 操作系统层

5) 汇编语言层

6) 高级语言层

7) 应用层

硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。

2.简述用汇编语言进行程序设计的必要性。

1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核

心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。

2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路

的初始化程序段,外部设备的低层驱动程序等。

3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动

态连接库等。

4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时,

暂时没有支持新指令的编译程序。

5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解

密软件、分析和防治计算机病毒等。

3.汉字编码主要分哪几类?每类的功能如何?

汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。

1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用

西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三

种:数字编码、拼音编码和字形编码。

2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标

码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标

识每个汉字。

3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息

处理系统内部存储、处理、传输汉字用的编码。

4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。

计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。

5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值?

用相应进制的数值加上进制标记即可。

二进制用B,如10101010B

八进制用Q,如437Q。

十进制用D或不用,如54D,或54。

十六进制用H,如27A8H

6.汇编语言中的基本数据类型有哪些?简述定点数和浮点数的区别。

基本数据类型:数值型数据和非数值型数据。非数值数据如字符、字符串、逻辑值等。

7.列出数字0~9、大写字母A~Z及小写字母a~z的ASCII码值。

30H~39H 41H~5AH 61H~7AH

8.当字长为八位时,写出下列各数的原码、补码和反码

(1)7BCH=011110111100B=1980D

(2)562Q=101110010B=370D

(3)90D=01011010B=5AH

(4)1110100.111B=164.7Q=74.EH

10.完成下列二进制数的加减运算。

(1)10101010 + 11110000 (2)11001100 + 01010100

=110011010 =100100000

(3)11011010 - 01010010 (4)11101110 - 01001101

=10001000 =10100001

11.完成下列十六进制数的加减运算。

(1)0FEA9 - 8888=7621H (2)0FFFF - 1234=EDCBH

(3)0EAC0 + 0028=EAE8H (4)3ABC + 1678=5134H

12.完成下列BCD码的运算。

(1)3+5 =8

0011+0101=1000 不用进行十进制调整

(2)4+7 =11

0100+0111=1011 此码不是BCD码,需要进行十进制调整

1011+0110=10001=0001,0001

(3)6+5 =11

0110+0101=1011 此码不是BCD码,需要进行十进制调整

1011+0110=10001=0001,0001

(4)8+8 =16

1000+1000=10000 此码不是BCD码,需要进行十进制调整

10000+0110=10110=0001,0110

第2章微型计算机体系结构

思考与练习

1.简述Intel微处理器的发展历程。

以IBM为例,微机的发展:4004、8008、8080、8086/8088、80286、80386、80486、Pentium系列。

2.IA-32 CPU通常由哪些单元组成,简述这些单元的作用。

IA-32 CPU由总线接口单元、指令预取单元、指令译码单元、执行单元、分段部件和分页部件六个功能部分组成。

总线接口单元BIU负责在CPU内部各部件与存储器、输入/输出接口之间传送数据或指令。

指令预取单元由预取器和预取队列组成。当BIU不执行取操作数或偏移地址的操作时,如果预取队列有空单元或发生控制转移,预取器便通过分页部件向BIU发出指令预取请求。

指令译码单元直接从指令预取单元的预取队列中读出预取的指令字节并译码,将指令直接转换为内部编码,并存放到已译码指令队列中。

执行单元的任务是将已译码指令队列中的内部编码变成按时间顺序排列的一系列控制信息,并发向处理器内部有关的部件,以便完成一条指令的执行。

分段部件的任务是把逻辑地址转换为线性地址并进行保护检查。

分页部件由地址加法器、页高速缓存寄存器及控制和属性检验用PLA组成。在操作系统控制下,如果分页操作处于允许状态,便执行从线性地址到物理地址的转换,同时还需要检验标准存储器访问与页属性是否一致,并保留一个最近所访问的页的列表。如果分页操作3.8088微处理器中有哪些寄存器?说明它们的功能及分组情况,进一步分析IA-32 CPU

寄存器组。

IA-32 CPU寄存器组包括以下几类。

①IA-32 CPU中的基本体系结构寄存器:

②系统级寄存器:IA-32 CPU中的系统级寄存器包括内存管理寄存器和控制寄存器。

内存管理寄存器GDTR、IDTR、LDTR和TR用于指示保护模式下系统中特殊段的地址信息,也称为系统地址寄存器。

IA-32 CPU中有四个32位的控制寄存器CR0、CR1、CR2和CR3。

③调试与测试寄存器:IA-32 CPU中设置了8个32位的调试寄存器,命名为DR0~DR7,它们为程序调试提供了硬件支持。IA-32 CPU中设置了2个32位的测试寄存器,命名为TR6和TR7。

4.8086的标志寄存器FLAG中,有哪些标志位?它们的名称和功能是什么?IA-32 CPU

的标志寄存器增加了哪些标志位,其功能是什么?

CF——进位标志(Carry Flag)。若CF=1,表示算术运算时产生进位或借位,否则CF=0。移位指令会影响CF。

PF——奇偶标志(Parity Flag)。若PF=1,表示操作结果中“1”的个数为偶数,否则PF=0。这个标志位主要用于检查数据传送过程中的错误。

AF——辅助进位标志(Auxiliary Carry Flag)。若AF=1表示字节运算产生低半字节向高半字节的进位或借位,否则AF=0。辅助进位也称半进位标志,主要用于BCD码运算的十进制调整。

ZF——全零标志(Zero Flag)。若ZF=1,表示操作结果全为零,否则ZF=0。

SF——符号标志(Sign Flag)。若SF=1,表示符号数运算后的结果为负数,否则SF=0。

OF——溢出标志(Overflow Flag)。若OF=1,表示当进行算术运算时,结果超过了最大范围,否则OF=0。

IF——中断允许标志(Interrupt Enable Flag)。若IF=1,则CPU可以响应外部可屏蔽中断请求;若IF=0,则CPU不允许响应中断请求。IF的状态可由中断指令设置。

DF——方向标志(Direction Flag)。若DF=1,表示执行字符串操作时按着从高地址向低地址方向进行;否则DF=0。DF位可由指令控制。

TF——单步标志(Trace Flag)。又称跟踪标志。该标志位在调试程序时可直接控制CPU 的工作状态。当TF=1时为单步操作,CPU每执行一条指令就进入内部的单步中断处理,以便对指令的执行情况进行检查;若TF=0,则CPU继续执行程序。

IA-32 CPU的标志寄存器增加的标志位:

IOPL——特权标志。

NT——任务嵌套标志。

RF——恢复标志。

VM——虚拟方式标志。

AC——对准检查标志。

VIF——虚拟中断标志。

VIP——虚拟中断暂挂标志。

ID——标识标志。

5.什么叫8086/8088存储器的段的基地址?什么叫段内偏移地址?什么叫物理地址?以上

地址各为多少位?

每个段在物理存储器中有一个段的起始地址,称为段基地址,它的低四位二进制码必须是0000,即段基地址是能被16整除的地址。

而偏移量是表示段内某一存储单元相对于段起始地址的空间位置,即段内偏移地址,也称有效地址EA。

对于1M字节的物理存储空间,每个存储单元都有一个20位的物理地址。物理地址是指存储单元的实际编码地址,对存储器的读写操作是需用物理地址进行按址存取。

6.什么是段选择器?什么是段描述符?什么是描述符表?它们之间有什么关系?

在保护模式下,段寄存器中存放的不是段基地址本身,而是一个16位的段选择器。段选择器索引说明段信息的段描述符,段描述符存放有段基地址信息。

段描述符的长度为8字节,每一个段都有一个对应的描述符。根据描述符所描述的对象不同,描述符可以分为三类:存储段描述符、系统段描述符、门描述符(控制描述符)。在描述符中定义了段的基地址,界限和访问类型等段属性。

为了便于组织管理,IA-32 CPU把段描述符组织成线性表,称为描述符表。IA-32 CPU 有三种类型的描述符表:全局描述符表GDT,局部描述符表LDT和中断描述符表IDT。

三者的关系:根据段寄存器中保存的段选择器查找相应的描述符表中的对应描述符,根据描述符的内容得出段基地址,将段基地址与偏移地址相加,即得到线性地址。

7.已知物理地址为FFFE0H,且段内偏移量为0880H,放在BX中,若对应的段基址值放

在DS中,问:DS=?

DS=FF76H

8.段地址和偏移地址用十六进制数表示如下,请分别计算它们的物理地址。

3040:0102 物理地址为:30502H

A000:001E 物理地址为:A001EH

1200:0E08 物理地址为:12E08H

60E0:002A 物理地址为:60E2AH

9.一台微型计算机,数据线有8根,地址线有16根,如果采用字节编址,那么它可以访

问的最大存储空间是多少字节?试用十六进制数表示该机的地址范围。

216 = 64KB,0000H~FFFFH

第3章微型计算机的指令系统

思考与练习

1.寻址方式?8086/8088系统中关于存储器操作数的寻址方式有哪几类?80386及后继处理器支持的新增的存储器寻址方式有哪几种?

指令中关于如何求出存放操作数有效地址的方法称为操作数的寻址方式。

寻址方式有:寄存器间接寻址、直接寻址、寄存器相对寻址、基址加变址寻址、基址加变址相对寻址。

80386及后继处理器支持的新增的存储器寻址方式有:比例变址寻址方式、基址比例变址寻址方式、相对基址比例变址寻址方式。

2.指令中数据操作数的种类有哪些?

立即数、寄存器数和内存单元数。

3.指出段地址、偏移地址与物理地址之间的关系。有效地址EA又是指什么?

段地址左移四位加上偏移地址形成20位的物理地址。

EA是指段内偏移地址,即表示段内某单元相对于段起始地址的空间位置。

4.在8086/8088系统中,能用于寄存器间接寻址及变址寻址的寄存器有哪些?它们通常与哪个段寄存器配合形成物理地址?

能用于寄存器间接寻址及变址寻址的寄存器有基址寄存器BX和BP,变址寄存器SI和DI,BX、SI、DI与DS配合形成物理地址,而BP与SS配合形成物理地址。

5.80x86指令系统中新增加的数据传送类指令有哪些?分析它们的功能。

6.什么是堆栈操作?以下关于堆栈操作的指令执行后,SP的值是多少?

PUSH AX

PUSH CX

PUSH DX

POP AX

PUSH BX

POP CX

POP DX

堆栈被定义为一种先进后出的数据结构,即最后进栈的元素将被最先弹出来。堆栈从一个称为栈底的位置开始,数据进入堆栈的操作称为压入(或压栈),数据退出堆栈的操作称为弹出,每进行一次弹出操作,堆栈就减少一个元素,最后一次压入的元素,称为栈顶元素,压入弹出操作都是对栈顶元素进行的堆栈的两种基本的操作。

在进行以上一系列堆栈操作后,SP指针的值是原SP+2。

7.用汇编语言指令实现以下操作。

(1)将寄存器AX、BX和DX的内容相加,和放在寄存器DX中。

ADD AX,BX

ADD DX,AX

(2)用基址变址寻址方式(BX和SI)实现AL寄存器的内容和存储器单元BUF中的一个

字节相加的操作,和放到AL中。

ADD AL,BYTE PTR [BX][SI]

(3)用寄存器BX实现寄存器相对寻址方式(位移量为100H),将DX的内容和存储单元

中的一个字相加,和放到存储单元中。

ADD 100H[BX],DX

(4)用直接寻址方式(地址为0500H)实现将存储器中的一个字与立即数3ABCH相加,

和放回该存储单元中。

ADD [0500H],3ABCH

(5)用串操作指令实现将内存定义好的两个字节串BUF1和BUF2相加后,存放到另一个

串BUF3中的功能。

……

MOV CX,COUNT

MOV SI,OFFSET BUF1

MOV DI,OFFSET BUF3

MOV BX,OFFSET BUF2

AGAIN:LODSB

ADD AL,[BX]

STOSB

INC BX

DEC CX

JNZ AGAIN

……

8.指出下列指令中,源操作数及目的操作数的寻址方式。

SUB BX,[BP+35] ;寄存器寻址、寄存器相对寻址

MOV AX,2030H ;寄存器寻址、立即寻址

SCASB ;隐含操作数为寄存器寻址和寄存器间接寻址

IN AL,40H ;寄存器寻址、立即寻址

MOV [DI+BX],AX ;基址加变址寻址、寄存器寻址

ADD AX,50H[DI] ;寄存器寻址、寄存器相对寻址

MOV AL,[1300H] ;寄存器寻址、直接寻址

MUL BL ;寄存器寻址、目的操作数为隐含寄存器寻址

9.已知(DS)= 1000H,(SI)= 0200H,(BX)= 0100H,(10100H)= 11H,(10101H)= 22H,(10600H)= 33H,(10601H)= 44H,(10300H)= 55H,(10301H)= 66H,(10302H)= 77H,(10303H)= 88H,试分析下列各条指令执行完后AX寄存器的内容。

(1)MOV AX,2500H (AX)=2500H

(2)MOV AX,500H[BX] (AX)==4433H

(3)MOV AX,[300H] (AX)=6655H

(4)MOV AX,[BX] (AX)=2211H

(5)MOV AX,[BX][SI] (AX)=6655H

(6)MOV AX,[BX+SI+2] (AX)=8877H

10.判断下列指令是否有错,如果有错,说明理由。

SUB BL,BX ;两个操作数的宽度不一样

MOV BYTE PTR[BX],3456H ;将16位的立即数传送到一个字节的内存单元

SHL AX,CH ;移位指令的移位位数用CL给出,不能用CH。

MOV AH,[SI][DI] ;不能用两个变址寄存器来实现寻址操作

SHR AX,4 ;只有当移位位数为1时,才能用立即数表达

MOV CS,BX ;不能对CS实现传送操作

MOV 125,CL ;立即数不能做目的操作数

MOV AX,BYTE PTR[SI] ;源操作数限定为字节,与目的操作数宽度不一致

MOV [DI],[SI] ;两个操作数不能同时为内存数

11.设(DS)= 1000H,(ES)= 2000H,(SS)= 3000H,(SI)= 0080H,(BX)= 02D0H,(BP)= 0060H,试指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?

MOV AX,0CBH 立即寻址

MOV AX,[100H] 直接寻址,物理地址为:10100H

MOV AX,[BX] 寄存器间接寻址,物理地址为:102D0H

MOV AX,[BP] 寄存器间接寻址,物理地址为:20060H

MOV AX,[BP+50] 寄存器相对寻址,物理地址为:200B0H

MOV AX,[BX][SI] 基址加变址寻址,物理地址为:10350H

12.分别说明下列每组指令中的两条指令的区别.

(1)AND CL,0FH 按位相“与”,高4位为“0000”,低4位保留原值;

OR CL,0FH 按位相“或”,高4位为原值,低4位为“1111”。

(2)MOV AX,BX 将BX寄存器的内容传送到AX寄存器中;

MOV AX,[BX] 将BX寄存器所指的内存单元的内容送AX寄存器中。

(3)SUB BX,CX BX寄存器内容减去CX寄存器的内容,结果送回到BX;

CMP BX,CX BX内容减去CX内容,结果影响标志位。

(4)AND AL,01H AL内容与01H相“与”,结果为“0000000x”送回AL寄存器;

TEST AL,01H AL内容与01H相“与”,结果影响标志位(ZF)。

(5)JMP NEAR PTR NEXT NEXT所指指令在当前指令的同段内;

JMP SHORT NEXT NEXT所指指令在当前指令的8位地址范围内。

(6)ROL AX,CL 循环左移,进位标志位不参与循环;

RCL AX,CL 循环左移,进位标志位参与循环。

(7)PUSH AX 将AX内容存入栈顶指针处,即进栈操作;

POP AX 将栈顶内容弹出装入AX寄存器中,即出栈操作。

13.试分析以下程序段执行完后BX的内容为何?

MOV BX,1030H

MOV CL,3

SHL BX,CL

DEC BX

程序执行完后,BX=817FH,执行过程如下。

14.写出下列指令序列中每条指令的执行结果,并在DEBUG环境下验证,注意各标志位的变化情况。

MOV BX,126BH

ADD BL,02AH

MOV AX,2EA5H

ADD BH,AL

SBB BX,AX

ADC AX,26H

SUB BH,-8

15.编写能实现以下功能的程序段。

根据CL中的内容决定程序的走向,设所有的转移都是短程转移。若D0位等于1,其他位为0,转向LAB1;若D1位等于1,其他位为0,转向LAB2;若D2位等于1,其他位为0,转向LAB3;若D0、D1、D2位都是1,则顺序执行。

……

AND CL,07H

CMP CL,01H

JZ LAB1

CMP CL,02H

JZ LAB2

CMP CL,04H

JZ LAB3

CMP CL,07H

JNZ OVER

……

LAB1:……

LAB2:……

LAB3:……

OVER:……

第4章伪指令与汇编语言程序结构设计

思考与练习

1.EQU伪指令和等号“=”伪指令有何异同?

EQU伪指令的功能是给各种形式的表达式赋予一个名字。表达式一旦赋予了一个名字,在以后的程序语句中,凡是出现该表达式的地方,均可用它的名字来代替。与EQU伪指令功能类似的是=伪指令,=伪指令又称等号语句。等号语句能对符号进行重新定义,并使其具有新的值,而EQU伪指令中的表达式名是不允许重新定义的。

2.汇编语言的语句由几部分构成?分析每部分的作用。

汇编语言的语句由一至四个部分组成。

[名字项] 操作项[操作数项] [;注释项]

名字项是一个符号。

操作项是一个操作码的助记符,它可以是指令、伪指令或宏指令名。

操作数项由一个或多个表达式组成,它提供为执行所要求的操作而需要的信息。

注释项用来说明程序或语句的功能。“;”为识别注释项的开始。“;”也可以从一行的第一个字符开始,此时整行都是注释。

3.简述指令和伪指令的区别。

指令性语句是由指令组成的由CPU执行的语句,完成一定的操作功能,能够翻译成机器代码。指示性语句也叫伪指令语句。指示性语句是指不由CPU执行,只为汇编程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码的语句。

4.8086/8088系统中各段如何定义?在段定义中,定位类型、组合类型、类别各起什么作

用?

段定义伪指令的格式如下:

段名SEGMENT [定位类型] [组合类型] [‘类别’]

┇;段体

段名ENDS

定位类型任选项告诉汇编程序如何确定逻辑段的边界在存储器中的位置。组合类型主要用在多个模块的程序中。组合类型规定本段与其他段的组合关系,有六种方式。类别是用单引号括起来的字符串,如代码段(‘CODE’)、堆栈段(‘STACK’)等。当然,也可以是其他名字。设置类别的作用是当几个程序模块进行连接时,将具有相同类别名的逻辑段装入连续的内存区内。

5.汇编语言的可执行程序分哪几类?简述各类的特点。

DOS操作系统支持两种可执行程序的结构,分别为EXE程序和COM程序。

利用程序开发工具,通常会生成EXE结构的可执行程序(扩展名为EXE的文件)。它有独立的代码段、数据段和堆栈段,还可以有多个代码段或多个数据段,程序长度可以超过64KB。

COM文件是一种只有一个逻辑段的程序,其中包含有代码区、数据区和堆栈区,大小不超过64KB。COM文件存储在磁盘上是主存的自我完全映像,与EXE文件相比,其装入速度快,占用的磁盘空间少。

6.举例说明LABEL、PTR和THIS的作用和用法。

LABEL伪指令的功能是定义某变量或标号的类型,同时也定义了该变量或标号的段值和偏移地址。其段值为当前段的段值,偏移地址为下一条指令的偏移地址。LABEL伪指令本身不开辟新的内存单元,但它可以改变标号(变量)的属性,使这同一标号(变量)对不同的引用可以具有不同的属性。

指针操作符PTR用于在本语句中取代一个已经定义过的存储器操作数的属性,但并不永久改变该操作数的属性,仅在本语句中有效。

指定操作符THIS可以象PTR一样建立一个指定类型(BYTE、WORD或DWORD)的或指定距离(NEAR、FAR)的地址操作数,但该操作数的段地址和偏移地址与下一个存储单元地址相同。

7.在指令AND AX,X1 AND X2中,X1和X2是两个已赋值的变量,问两个AND分别

在何时进行操作?有什么区别?

第1个AND在生成目标代码后,指令执行时进行操作,它是指令助记符;第2个AND 在汇编时对X1和X2进行与运算,它是运算符。

8.在BUF1变量中依次存储了5个字数据,接着定义了一个名为BUF2的字单元,表示如

下:

BUF1 DW 8765H,6CH,0,1AB5H,47EAH

BUF2 DW ?

设BX中是BUF1的首地址,请编写指令将数据50H传送给BUF2单元。

ADD BX,10

MOV WORD PTR[BX],50H

请编写指令将数据FFH传送给数据为0的单元。

ADD BX,4

MOV WORD PTR[BX],FFH

9.下面是一个数据段的定义,请用图表示它们在内存中存放的形式。

DA TA SEGMENT

A1 DB 25H,35H,45H

A2 DB 3 DUP(5)

A3 DW 200,3AB6H

A4 DW 3000H,6A6FH

DA TA ENDS

A1

A2

A3

A4

10.说明下列语句所分配的存储空间及初始化的数据值。

(1)BYTE_V AR DB ‘BYTE’,21,-42H,3 DUP(0,?,2 DUP(2,3),?) (2)WORD_V AR DW 5 DUP(4,2,0),?,-8,‘BY’,‘TE’256H

BYTE_V AR WORD_V AR

11.

A D

B 10H,20H,‘OPQ’,4FH

B DB N DUP(?);改为B DB 6 DUP(?)

MOV DI,A ;改为MOV DI,OFFSET A

MOV SI,B ;改为MOV SI,OFFSET B

MOV CX,LENGTH A ;改为MOV CX,LENGTH B

CC:MOV AX,[DI]

MOV [SI],AX

INC SI

INC DI

DEC CX ;去掉该句

LOOP CC

12.以下程序段落拟实现在同一个段内的调用过程,试判断可行性,如不能实现,请改正。

CODE SEGMENT

ASSUME CS:CODE

BEGIN:

CALL SUB1

CALL SUB2

SUB1 PROC FAR

MOV AX,X

MOV BX,Y

MUL BX

RET

SUB1 ENDP

CODE ENDS

END START

SUB1应为NEAR型,过程SUB2并未定义,应定义SUB2。程序段落改为:CODE SEGMENT

ASSUME CS:CODE

BEGIN:

CALL SUB1

CALL SUB2

SUB1 PROC NEAR

MOV AX,X

MOV BX,Y

MUL BX

RET

SUB1 ENDP

SUB2 PROC NEAR

……

RET

SUB2 ENDP

CODE ENDS

END BEGIN

13.有一个数据段定义了如下6个变量,请写出该数据段。

(1)BUF1为十进制数字节变量:64;

(2)BUF2为字符串变量:‘Teacher’;

(3)BUF3为十六进制数字节变量:2FH;

(4)BUF4为双字变量:657AH;

(5)BUF5为字变量:657AH;

(6)BUF6为二进制数字节变量:10101101B。

DA TA SEGMENT

BUF1 DB 64

BUF2 DB ‘Teacher’

BUF3 DB 2FH

BUF4 DD 657AH

BUF5 DW 657AH

BUF6 DB 10101101B

14.根据下面的数据定义,填空。

V AR1 DB ‘6677’

V AR2 DB 30 DUP(0)

V AR3 DW 10 DUP(?)

V AR4 DW 0A02H,0B03H

LENGTH V AR1 =( 1 )TYPE V AR1 =( 1 )

LENGTH V AR2 =(30 )TYPE V AR2 =( 1 )

LENGTH V AR3 =(10 )TYPE V AR3 =( 2 )

LENGTH V AR4 =( 1 )TYPE V AR4 =( 2 )

第5章汇编语言程序设计

思考与练习

1.开发汇编语言源程序的主要步骤有哪些?

(1)问题定义

(2)建立数学模型

(3)确立算法和处理方案

(4)画流程图

(5)编制程序

(6)上机调试

(7)试运行和分析结果

(8)整理资料,投入运行

2.简述衡量一个程序质量的标准。

1)程序的正确性和完整性。

2)程序的易读性。

3)程序的执行时间和效率。

4)程序所占内存的大小。

3.循环程序由几部分组成?各部分的功能是什么?

1)循环初始化部分。这是循环准备工作阶段,如建立地址指针、设置循环次数、必要

的数据保护以及为循环体正常工作而建立的初始状态等。这一部分本身只执行一次。

2)循环体。即循环程序要完成的具体操作,是需要重复执行的程序段。它是循环的核

心部分,没有循环体就不能构成循环。

3)循环控制部分。循环控制部分主要用来结束整个循环过程,根据循环所给定的条件,

判别循环是否结束,完成对循环的控制。

4)循环控制修改部分。这一部分是为保证每一次循环时,参加执行的信息能发生有规

律的变化而建立的程序段。循环控制主要是一些运算控制单元(变量、寄存器)的

修改间距、修改操作数地址、修改循环计数器、改变变量的值等。

4.常用循环程序的控制方法由哪几种?阐述每种的特点。

控制循环次数较常用的方法是用计数器控制循环、按问题的条件控制循环和用逻辑变量控制循环。

计数器控制循环就是利用循环次数作为控制条件,它是最简单的和典型的循环控制方法。对于循环次数已知的程序,或者在进入循环前可由某个变量确定循环次数的程序,通常用计数器来控制循环。这种情况适于采用循环指令LOOP来实现循环功能。

有些循环程序的循环次数事先无法确定,但它与问题的某些条件有关。这些条件可以通过指令来测试。若测试比较的结果满足循环条件,则继续循环,否则结束循环。这就是所谓的按问题的条件控制循环。事实上,利用条件转移指令支持的转移条件作为循环控制条件,可以更方便地构造复杂的循环程序结构。

在有些情况下,可能在一个循环中有两个循环支路,在第一个支路循环了若干次以后,转至另一个循环支路循环。这就可以设置一个逻辑变量,用以控制转入不同的循环支路。具体实现方法是:把逻辑变量送入寄存器中,以逻辑变量各位的状态作为执行某段程序的标志。逻辑变量可由一到多个字节组成。

5.在内存BUFFER单元中定义有10个16位数,试寻找其中的最大值及最小值,并放至

指定的存储单元MAX和MIN中。画出程序流程图。

STACK SEGMENT STACK

DW 256 DUP(?)

STACK ENDS

DA TA SEGMENT

BUFFER DW 56H,29H,10H,22H,09H,8FH,1AH,6DH,3DH,33H

MAX DW ?

MIN DW ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET BUFFER

MOV CX,10

DEC CX

MOV AX,[BX]

INC BX

LOP1:CMP AX,[BX]

JG BIG

MOV AX,[BX]

BIG:INC BX

LOOP LOP1

MOV MAX,AX

JMP EXIT

MOV BX,OFFSET BUFFER

MOV CX,10

DEC CX

MOV AX,[BX]

INC BX

LOP2:CMP AX,[BX]

JL SMALL

MOV AX,[BX]

SMALL:INC BX

LOOP LOP2

MOV MIN,AX

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

6.统计字型变量DATBUF中的值有多少位为0,多少位为1,并分别记入COUNT0及

COUNT1单元中。

编程思路:

在内存单元定义一个变量DA TBUF,将其取到寄存器中,采用移位的方式识别每一位为0还是为1,设置两个计数器分别统计。统计好后,分别存入内存单元。

7.设在变量单元A1、A2、A3、A4中存放有4个数,试编程实现将最大数保留,其余三

个数清零的功能。

编程思路:

依次比较各个数,每次比较中将较小的数清零,较大数及较大数的地址保留,再继续与下一个数比较,直至四个数处理完。

8.在BUFF开始的存储区中存放30个带符号数,试统计其正数、负数和零的个数。并将

个数分别放至A1、A2及A3单元。

编程思路:

将30个符号数依次取到寄存器中,判断每个数的符号位,依此可识别出负数和非负数,再判断是否为0,可识别出是零还是正数。设置3个计数器分别统计正数、负数和零的个数,统计完后存入内存单元。

9.若在内存缓冲区中存在一个无序列,列的长度放在缓冲区的第一个字节,试将内存某单

元中的一个数加入到此数列中(若此数列中有此数,则不加;若此数列中无此数,则加在数列尾)。

编程思路:

ν将内存定义好的数串依次取到寄存器中,与要加入的数据比较;

ν如无此数,取下一个数继续比较;

ν如有此数,则停止比较,将该数加到数尾,并且列的长度加1;

10.在内存已定义好一个容量为20字节的数组,请将数组中为0的项找出,统计0的个数,

并删除数组中所有为零的项,将后续项向前压缩。

编程思路:

ν将数组依次取到寄存器中,每个数与零比较;

ν统计0的个数;

ν每次发现为0的项,统计后将其删掉,后续项向前移。

11.将内存字单元BUF1中的内容拆为四个16进制数,并分别转换为相应的ASCII码存于

BUF2及其后续的单元中。

STACK SEGMENT STACK

DW 256 DUP(?)

STACK ENDS

DA TA SEGMENT

BUF1 DW 37D5H

BUF2 DB 4 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET BUF1

MOV DI,OFFSET BUF2

MOV AX,[BX]

MOV BX,AX

MOV DX,4

MOV CL,4

LOP:AND AX,000FH

OR AL,30H

CMP AL,39H

JLE STORE

ADD AL,7

STORE:MOV [DI],AL

SHR BX,CL

MOV AX,BX

DEC DX

JNZ LOP

MOV AH,4CH

INT 21H

CODE ENDS

END START

12.在数据段的BUFFER到BUFFER+24单元中存放着一个字符串,请判断该字符串中是

否存在数字,如有则把X单元置1,如无数字则将X单元置0。

编程思路:

(1)将字符串依次取到寄存器中;

(2)将字符的ASCII码与30H~39H比较,在此范围则为数字;

(3)发现数字,则置X单元,并结束搜索。

13.从键盘上输入两个字符存于A,B单元中,比较它们的大小,并在屏幕上显示两个数的

大小关系。

STACK SEGMENT STACK

DW 256 DUP(?)

STACK ENDS

DA TA SEGMENT

A D

B ?

B DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV AH,1

INT 21H

MOV A,AL

MOV AH,1

INT 21H

MOV B,AL

CMP A,AL

JGE AGB

MOV DL,‘B’

MOV BL,‘A’

JMP DISP

AGB:MOV DL,‘A’

MOV BL,‘B’

DISP:MOV AH,2

INT 21H

MOV DL,‘>’

INT 21H

MOV DL,BL

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

14.内存BUF开始的单元中存放6个无序数,请用冒泡法将它们按递增顺序排序。

STACK SEGMENT STACK

DW 256 DUP(?)

STACK ENDS

DA TA SEGMENT

A DW 34,78,65,21,66,90

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,6

DEC CX

A1:MOV DI,CX

MOV BX,0

A2:MOV AX,A[BX]

CMP AX,A[BX+2]

JLE A3

XCHG AX,A[BX+2]

MOV A[BX],AX

A3:ADD BX,2

LOOP A2

MOV CX,DI

LOOP A1

MOV AH,4CH

INT 21H

CODE ENDS

END START

15.编写程序,求1~150之间的能同时被2和3整除的整数之和。

编程思路:

ν从1开始判断每个数是否能被2整除,不能被2整除则更新为下一个数;

ν能被2整除则再判断是否能被3整除,如能整除则累加该数;

ν当该数更新为150时,则停止。

16.阅读下列程序,写出程序执行后数据段BUF十个内存单元中的内容。

DA TA SEGMENT

BUF DB 23H,76H,8AH,6FH,0E3H,02H,9DH,55H,39H,0ACH KEY DB 78H

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DA TA

START:MOV AX,DATA

MOV DS,AX

MOV ES,AX

CLD

LEA DI,BUF

MOV CL,[DI]

XOR CH,CH

INC DI

MOV AL,KEY

REPNE SCASB

JNE DONE

DEC BUF

MOV SI,DI

DEC DI

REP MOVSB

DONE:MOV AH,4CH

INT 21H

CODE ENDS

END START

程序执行后,数据段BUF的内容还是执行之前的内容。

17.分析以下程序段的功能,并指出程序执行后BUF单元存储的是什么信息?

DA TA SEGMENT

STRN DB ‘FGGHY4567AAA32?’,‘$’

BUF DB 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START:MOV AX,DATA

MOV DS,AX

MOV AX,0

MOV DX,AX

LEA DI,STRN

MOV CX,100

MOV AL,‘$’

LP:CMP AL,[DI]

JE DONE

泛读教程3第二版答案

泛读教程2第二版答案 Unit1 Word Pretest:1-5 ACBBC 6-10 ACBCA 11 B Reading Skill: 2-5 CBBB 6-10 CFTTF 11-12 FF Vocabulary Building: 1:empolyment,economic,Attendance,graduate,pursuit,engineering,enroll,critical,acade mic. evolved 2:aptitude,attitude,acquire,require,search,research, Cloze: other,just,has,some/many,than,refuse,see,that,without,If,ready,wrong, Section B:1-5 ACCCC 6-10 CCCAC 11-14 BABA Section C: 1-5 CBCCB 6-7 BB Unit2 Word Pretest: 1-5BCACB 6-8BCA Reading Skill: 2-5BBBD 6-10DBCCA Vocabulary Building: 1:urge,urgent,urgently embarrassment,embrass,embarrassedly

familiarity,familiarize,familiar, intrade,intruding,intrudingly shyness,shy,shyly popularize,popular,popularly, reception,receive,receptive, express,expressive,expressively, comfort,comfortable,comfortably solidarity,solidify,solidly 2: 1)A primitive,B primary, C primary 2)A contemporary,B temporary,C contemporary 3)A lonely B alone C alone Cloze:communicate,ways/means/ones,using/saying,in,of,message,meet/have/encount er/experience,is/causes,meaning,to,eyes, SectionB: 1-5BABBA 6-10CABAA,11-15 ABCCB SectionC: 1-5BCCAA, 6-9 CCBC Unit3 Word Protest:1-5BCCAA 6-9 CCBC

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

汇编语言程序设计实验教程

汇编语言程序设计实验教程

目录 第一章上机过程 (4) 1.1编辑源程序 (4) 1.2 汇编源程序 (5) 1.3连接目标程序 (6) 1.4运行程序 (7) 第二章DEBUG命令祥解 (8) 2.1 DEBUG程序使用 (8) 2.2 DEBUG的常用命令 (8) 第三章汇编语言程序设计实验 (13) 3.1实验一顺序与分支程序设计 (13) 3.2 实验二循环与子程序程序设计 (15) 3.3 实验三算术运算与代码转换程序设计 (16) 3.4 实验四字符串的匹配与替换程序设计 (18) 3.5 实验五输入输出程序设计 (19) 第四章部分实验参考答案 (21)

第一章上机过程 1.1编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。 汇编程序:将汇编语言源程序翻译成机器语言程序的系统。 汇编:将汇编语言程序翻译成机器语言程序的过程。 在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。 (1)编辑软件 编辑软件:EDIT、QE、WORD、NOTEPAD等。 当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。 (2)汇编程序 有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。 (3)连接程序 用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。 (4)辅助工具程序(.EXE) 进行汇编语言程序调试和文件格式转换的程序有: https://www.360docs.net/doc/1714571309.html, 动态调试程序 EXE2BIN.EXE文件格式转换程序

泛读教程第二册答案(全)

Keys to Reading Course 2 Unit 1 Reading Section A Word Pretest 1.B 2.A 3.B 4.A 5.B 6.C 7.B 8.C Reading Comprehension 1.B 2.A 3.B 4.B 5.C 6.C Vocabulary Building Word Search 1. assignment 2. irony 3. reverse 4. accomplish 5. assemble 6. squeeze 7. sensual 8. fragment 9. narcotic 10. adolescence Use of English 1. Bob agreed to take on the leadership of the expedition. 2. The world was taken in by his fantastic story of having got to the Pole alone. 3. He took up his story after a pause for questions and refreshments. 4. That takes me back to the time I climbed to the top of Mount Fuji. 5. The members of the party took it in turns to steer the boat. 6. They took it for granted that someone would pick up their signals and come to their aid. Stems 1. proclaim: to announce officially and publicly; to declare 2. percentage: a proportion or share in relation to a whole; a part 3. confirm: to support or establish the certainty or validity of; to verify 4. affirm: to declare positively or firmly; to maintain to be true 5. centigram: a metric unit of mass equal to one hundredth of a gram 6. exclaim: to express or utter(something) suddenly or vehemently Synonyms 1. adaptability 2. purpose 3.strained 4.hold 5.defeat Cloze important second France student bilingual monolingual serious means use difficult Section B 1.F 2.T 3.T 4.C 5.A 6.B 7.B 8.B 9.B 10.T 11.T 12.F 13.F 14.T 15.T Section C 1.F 2.T 3.T 4.F 5.T 6.F 7.F 8.F 9.F 10.F

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=3997 https://www.360docs.net/doc/1714571309.html,快速开发新闻系统在线播放 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=1243 https://www.360docs.net/doc/1714571309.html, 2.0快速入门(12)-https://www.360docs.net/doc/1714571309.html, 2.0网站快速导航 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=4825 https://www.360docs.net/doc/1714571309.html, 高级排错技巧 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.360docs.net/doc/1714571309.html,开发SQL Server 2005 OLAP应用 https://www.360docs.net/doc/1714571309.html,/so/so138.aspx?id=2535

泛读教程3第二版答案

泛读英语教程3读写习题答案 unit1 When I think of people in this world who have really made a difference, I think of my parents. They were truly saints among ordinary people. I was one of the ten children my parents adopted. They rescue (挽救) each of us from a life of poverty and loneliness. They were hardly able to restrain (克制)themselves from bringing home m ore children to care for. If they had had the resources (资源) they certainly would have. Most people do not realize how much they appreciated(感激) someone until they pass away. My sisters and brothers and I did not want this to happen before we uttered(说) the words "Thank you" to our parents. Although we have all grown up and scattered(散落) about the country, we got back together to thank our parents. My brother Tom undertook(从事,承担)the task of organizing the event. Every Friday night, Mom and Dad have had the ham d inner special at the same r estaurant for the last twenty years. That is where we waited without their knowing. When we first caught a glimpse (瞥一眼) of them coming across the street, we all hid underneath(在…之下) a big table. When they entered, we leapt out and shouted, "Thank you, Mom and Dad." My brother Tom presented(提供)them with a card and we all hugged. My Dad pretended that he had known we were under the table all along. 当我想到的人在这个世界上真的有区别,我认为我的父母。他们是真正的圣徒在普通 人中间。我是十个孩子的父母。他们拯救(挽救)我们每个人从贫穷和孤独的生活。他们 几乎能够抑制(克制)把更多的孩子带回家照顾自己。如果他们有资源(资源)他们肯定会。大多数人都没有意识到他们欣赏(感激)的人,直到他们去世。我和我的兄弟姐妹不希望这 样的事情发生在我们说出的话(说)“谢谢”我们的父母。虽然我们都长大了,分散(散落)的国家,我们一起回来,感谢我们的父母,我的哥哥汤姆进行了(从事,承担)的任务组织事件。每一个星期五的晚上,妈妈和爸爸有火腿晚餐特别在同一餐厅过去二十年了。我们等 了不知道。当我们第一次瞥见(瞥一眼)的街对面,我们都躲在(在…之下)一个大表。当他

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主 编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

泛读教程(三)课后题答案(Unit 1-15)

《泛读教程》第三册课后题答案 Unit1 Section A Vocabulary Building: I.1.practical,practice,practices,practical,practiced 2.worthless,worthy,worthwhile,worth,worth 3.vary,variety,variation,various,Various 4.absorbing,absorbed,absorb,absorption,absorbent II.1.effective,efficient,effective 2.technology,technique 3.middle,medium,medium Cloze Going/about/trying,expectations/predictions,questions,answers,predictions/expectations,tell, know/foretell,end,develop/present,worth Section B TFTT,CBCC,TFF,CAA,CCA Unit2 Section A Vocabulary Building: I.mess,preference,aimlessly,remarkable,decisive,shipment,fiery,physically,action,housing II.1.aptitude,attitude 2.account,counted,counted 3.talent,intelligence Cloze Other,just/only,has,some/many,than,refuse,see/know/understand,that,without,If, ready/willing/educated/taught,wrong/incorrect/erroneous Section B ACC,CC,CCC,ACB,ABA Section C CCDDAC Unit3 Section A Vocabulary Building: I. Noun Verb Adjective Adverb admission admit admissible Admissibly

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

泛读教程第二版第三册unit 9

Unit 9 Cross-Cultural Communication 1-5 BCCAB 6-10 AACAB 1-5 BCABC 6-10 CCBAB initial initialize initial initially system systemize systematic systematically difference differ different differently frequency frequent frequent frequently variability vary various variously expression express expressive expressively disrespect disrespect disrespectful disrespectfully verb verbalize verbal verbally 1.A. clue B.cue C. clue D.cue 2.A. attribute B. contribute C. contribute .D. attribute 3.A. subscribe B. ascribe C. subscribe D. ascribe CLOZE well; separating / isolating ; is ; own ; close ; need; look; order; respect; follow; prior; sign/ cue; help; was/ were ; else SECTION B 1-5 BBCTT 6-10 FCCBC 11-15 ACTFF SECTION C 1-5 TFFTF TFT

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

大工19秋《汇编语言程序设计》大作业题目及要求

学习中心: 专业: 年级:年春/秋季 学号: 学生: 题目: 1.谈谈你对本课程学习过程中的心得体会与建议 2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。 《汇编语言程序设计》课程设计 注意:从以下5个题目中任选其一作答。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言 作业提交: 大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东浙江台州奥鹏学习中心[1]VIP) 以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。

注意事项: 独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计! 题目一:进制转换程序 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:比如可设计二进制转化十六进制的算法, 简单介绍该算法的基本思想,100字左右即可。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。 (4)主要函数代码:列出算法的具体代码。 (5)列出算法中使用指令的含义,比如解释MOV指令的 含义,ADD指令的含义,至少撰写十个指令。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言! 题目二:冒泡排序算法 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:简单介绍冒泡排序算法的基本思想,至少 100字。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

相关文档
最新文档