微型计算机原理与接口技术(第三版)课后练习答案_第1页
微型计算机原理与接口技术(第三版)课后练习答案_第2页
微型计算机原理与接口技术(第三版)课后练习答案_第3页
微型计算机原理与接口技术(第三版)课后练习答案_第4页
微型计算机原理与接口技术(第三版)课后练习答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1思考与练习题

一、选择题

1.计算机硬件中最核心的部件是()。C

A.运算器B.主存储器C.CPUD.输入/输出设备

2.微机的性能主要取决于()。A

(B一一计算机数据处理能力的一个重要指标)

A.CPUB.主存储器C.硬盘D.显示器

3.计算机中带符号数的表示通常采用()oC

A.原码B.反码C.补码D.BCD码

4.采用补码表示的8位二进制数真值范围是()。C

A.T27〜+127B.-127~+128C.T28〜+127D.T28〜+128

5.大写字母“B”的ASCH码是()oB

A.41HB.42HC.61HD.62H

6.某数在计算机中用压缩BCD码表示为10010011,其真值为()«C

A.1001001IBB.93HC.93D.147

二、填空题

1.微处理器是指CPU:微型计算机以CPU为核心,配置内存和1/0接口构成;其特点

是(1)功能强(2)可靠性高(3)价格低(4)适应性强(5)体积小(6)维护方便。P8P5

2.主存容量是指RAM和ROM总和:它是衡量微型计算机计算机数据处理能力的一个重要

指标;构成主存的器件通常采用DRAM和PROM半导体器件。P5P9

3.系统总线是CPU与其他部件之间传送数据、地址和控制信息的公共通道:根据传送内容

的不同可分成数据、地址、控制3种总线。P9

4.计算机中的数据可分为数值型和非数值型两类,前者的作用是表示数值大小,进行算

术运算等处理操作;后者的作用是表示字符编码,在计算机中描述某种特定的信息。P12

5.机器数是指一数及其符号在机器中加以表示的数值化_;机器数的表示应考虑机器数的范

围、机器数的符号、机器数中小数点位置3个因素。P15P16

6.ASCH码可以表示128种字符,其中起控制作用的称为功能码:供书写程序和描述命

令使用的称为信息码。P18P19

三、判断题

1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。()》

2.计算机中数据的表示范围不受计算机字长的限制。()X

3.计算机地址总线的宽度决定了内存容量的大小。()♦

4.计算机键盘输入的各类符号在计算机内部均表示为ASCH码。()X

(键盘与计算机通信采用ASCII码)

四、简答题

L微处理器和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?P2~3

2.微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?P8~ll

3.微型计算机系统软件的主要特点是什么?包括哪些内容?P1T12

4.计算机中常用的数制有哪些?如何进行数制之间的转换?P13~15

5.ASCII码和BCD码有哪些特点?其应用场合是什么?P19~20

五、数制转换题

1.将下列十进制数分别转换为二进制数、十六进制数和压缩BCD码。

(1)25.8211001.1101B;19.DI1;00100101.10000010BCD

(2)4120010B;19C.2H;040000010010.00010101BCD

(3)513.461000000001.0111;201.7H;010100010011.01000110BCD

(4)690010;45.2H;01011001.000100110110BCD

2.将下列二进制数分别转换为十进制数和十六进制数。

(1)111001.10157.625D;39.AH

(2)110010.110150.8125D;32.DH

(3)1011.1101111.84375D;B.D8H

(4)101101.011145.4375D;21).7H

3.将下列十六进制数分别转换为二进制数、十进制数和BCD码。

(D7B.211111011.00100001B;123.12890625D;123.12890625BCD

(2)127.IC100100111.000111B;295.06640625D;295.06640625BCD

(3)6A1.4110110100001.0100000IB;1697.25390625D;1697.25390625BCD

(4)2DF3.410110111110011.01B;11763.25D;11763.25BCD

4.写出下列十进制数的原码、反码、补码表示(采用8位二进制数)。

(1)96[96]原=01100000;[96]反=01100000;[96]补=01100000

(2)31[31]原=00011111;[31]反=00011111;[31]补=00011111

(3)-42[-42]原=10101010;[-42]反=11010101;[-42]#=11010110

(4)-115[T15]原=11110011;[-115]反=10001100;[-115④卜=10001101

5.己知下列补码,求其原值的十进制表示.

(1)92H-110D

(2)8DH-115D

(3)B2H-781)

(4)4C26H+19494D

6.按照字符所对应的ASCII码表示,查表写出如下字符的ASCII码:

a、K、G、+、DEL、SP、CR、$。

61H4BH47H2BH7FH20HODH24H

2思考与练习题

一、选择题

1.在EU中起数据加工与处理作用的功能部件是()。A

A.ALUB.数据暂存器C.数据寄存器D.EU控制电路

2.以下不属于BIU中的功能部件是()0B

A.地址加法器B.地址寄存器C.段寄存器D.指令队列缓冲器

3.堆栈操作中用于指示栈顶地址的寄存器是()。B

A.SSB.SPC.BPD.CS

4.指令指针寄存器(IP)中存放的内容是()»B

A.指令B.指令地址C.操作数D.操作数地址

5.8086系统可访问的内存空间范围是()。B

A.OOOOH-FFFFHB.00000H〜FFFFFH

C.0~2'6D.0~220

6.8086的1/0地址空间采用16位数寻址时,可访问的端门数容量为()。C

A.16KBB.32KBC.64KBD.1MB

7.8086最大和最小工作方式的主要差别是()。D

A.数据总线的位数不同B.地址总线的位数不同

C.I/O端口数的不同D.单处理器与多处理器的不同

二、填空题

1.8086的内部结构由工工和BIU一组成,前者功能是执行指令,后者功能是总线操作。

P24P26

2.8086取指令时,会选取CS作为段基值,再加上由」P提供的偏移地址形成20位物理地

址。

3.8086有两种外部中断请求线,它们分别是INTR和NMI。P32

4.8086的标志寄存器共有个标志位,分为6个状态标志位和3个控制标志位。P28

5.8086为访问1MB内存空间,将存储器进行分段管理;其物理地址是唯一的;偏移地

址是指相对段基地址的偏移量;逻辑地址常用于程序中。P29P20P34P35

6.逻辑地址为1000H:0230H时,其物理地址是10230H,段地址是1000H,偏移量是

0230H,

7.时钟周期是指CPU基本时间计量单位,总线周期是指一次总线操作时间,总线操作是

指CPU经外部总线对存储器或I/O端口进行一次信息输入和输出的过程。P37

8.8086工作在最大方式时CPU引脚MN/-MX应接地;最大和最小工作方式的应用场合分别

是多处理器和单处理器系统。P38P39

三、判断题

1.IP中存放的是正在执行的指令偏移地址。()X

2.从内存单元偶地址开始存放的数据称为规则字。()4

3.EU执行算术和逻辑运算后的结果特征可由控制标志位反映出来。()X

4.指令执行中插入”,和T,是为了解决CPU与外设之间的速度差异。()X

5.总线操作中第1个时钟周期通常是取指周期。()X

6.8086系统复位后重新启动时从内存地址FFFFOH处开始执行。()J

四、简答题

1.8086微处理器中的指令队列起什么作用(EU从指令队列取指令的缓冲作用),其长度是多

少字节(6个字节)?P26

2.什么是逻辑地址(无符号32位二进制数),它由哪两部分组成(段地址和偏移地址)?8086

的物理地址是如何形成的(物理地址=段地址*10H+偏移地址)?P35

3.8086微机系统中存储器为什么要分段(8086系统内的地址寄存器均是16位,只能寻址

64KB;将1MB存储器分成逻辑段,每段不超过64KB空间,以便CPU操作。),各逻辑段之间

的关系如何(可重叠、交叉、紧密连接和分离)?P34

4.I/O端口有哪两种编址方式(统一编址和独立编址),8086的最大I/O寻址空间是多少

(64KB)?P36

5.8086的最大工作模式(8086、8087和8089通过总线控制器8288产生对总线的控制信号)

和最小工作方式(8086直接产生总线控制信号)的主要区别是什么?他们分别应用在何种场

合(多处理器和单处理器系统)?P39

6.简述实地址方式(山段地址和偏移地址计算产生物理地址,其物理地址可以超过20位)和

虚拟8086方式(由段地址和偏移地址计算产生的有效物理地址为20位)的区别。P41

7.简述Pentium微处理器的主要特性。P44

五、分析题

1.有一个由10个字组成的数据区,其起始地址为1200H:0120H。试写出该数据区的首末存

储单元的实际地址(12120H~12120H+10*2T=12133H)。

2.若一个程序段开始执行之前,(CS)=33AOH,(IP)=0130H,试问该程序段启动执行指令的实

际地址是什么(33A00H+0130II=33B30H)?

3.有两个16位的字31DAH和5E7FH,它们在8086系统存储器中的地址分别为00130H和

00134H,试画出它们的存储示意图。

地址存储空间

00130HODAH

00131H31H

00134H7FH

00135H5EH

4.将字符串“Good!”的ASCII码依次存人从01250H开始的字节单元中,画出它们存放的内

存单元示意图。

地址存储空间

01250H

01251H

01252H

01253H

01254H

5.8086微处理器读/写总线周期各包含多少个时钟周期(4个时钟周期)?什么情况下需要插

入T”等待周期(当4上升沿检测到READY=0时,在Ts与「之间插入T,)?应插入多少个T”,

取决于什么因素(READY=0持续的时间长短)?什么情况下会出现空闲状态T,(BIU不执行总

线操作的时钟周期。例如:8086执行MUL、DIV指令长指令时,BIU有段时间不执行总线操

作;因此,插入TJ?P38

3思考与练习题

一、选择题

1.寄存器间接寻址方式中,要寻找的操作数位于()中。B

A.通用寄存器B.内存单元C.段寄存器D.堆栈

2.下列指令中正确的是()。C

A.MOVAL,BXB.MOVCS,AXC.MOVAL,CLD.MOV[BX],[SI]

3.下列指令中错误的是()。C

A.MOVAX,1234HB.INCBXC.SRLAX,2D.PUSHDX

4.设(SP)=1010H,执行POPAX后,SP中的内容为()。B

A.10UHB.1012HC.100EHD.100FH

5.给定(AL)=80H,(CL)=02H,指令SHR八1,比执行后的结果是()。B

A.(AL)=40HB.(AL)=20HC.(AL)=COHD.(AL)=EOH

6.将AX清零并使CF位清零,下面指令错误的是()。A

A.SUBAX,BXB.XORAX,AXC.MOVAX,0(不影响FR)D.ANDAX,000011

二、填空题

1.计算机指令通常由操作码字段和操作数字段两部分组成:指令对数据操作时.按照数

据的存放位置可分为立即数、寄存器操作数、存储器操作数。

2.寻址的含义是指寻找操作数的过程;8086指令系统的寻址方式按照大类可分为与操作

数有关的寻址方式、与I/O端U有关的寻址方式;其中寻址速度最快的是立即数寻址。

P54~P57

3.指令MOVAX,ES:[BX+0100H]中,源操作数位于物理地址为ES*10H+BX+0100H的存储单元

;读取的是附加数据ES段的存储单元内容。

4.堆栈是一个特殊的存储器区域,其操作是以2字节单元为单位按照先进后出原则

来处理;采用一段指向栈顶地址,入栈时地址变化为SP<=(SP)-2。P57

5.I/O端口的寻址有直接端口寻址和间接端口寻址两种方式;采用8位数端口地址(直接

端口寻址)时,可访问的端口地址为02255;采用16位数端口地址(间接端口寻址)时,

可访问的端口地址为0~65535。P57~P58

三、分析计算题

1.指出如下指令中源操作数和目的操作数的寻址方式:

(l)MOVAX,100H(2)MOVCX.AX

(3)ADD[SI],1000(4)SUBBX,[SI+100]

(5)MOV[BX+300],AX(6)ANDBP,[DI]

源操作数目的操作数

(DMOVAX,100H立即数寄存器

(2)MOVCX,AX寄存器寄存器

(3)ADD[SI],1000立即数寄存器间接

(4)SUBBX,[SI+100]变址寄存器

(5)MOV[BX+300],AX寄存器变址

(6)ANDBP,[DI]寄存器间接寄存器

2.分析如下指令的正误,对错误指令说明出错误原因并加以收正:

(l)MOV[1200],23H(2)MOV1020H,CX

(3)MOV[1000H],[200011](4)MOVIP,00011

(5)PUSHAL(6)OUTCX,AL

(7)INAL,[80H](8)MOVCL,3300H

(DMOV[1200],23H;未指明数据类型MOVBYTEPTR[1200],23H

(2)MOV1020H,CX;立即数不能作为目标操作数MOV[1020H],CX

(3)MOV[1000H],[2000H];两操作数不能均是内存单元MOVBYTEPTR[1000H],2000H

(4)MOVIP,000H;IP不能在MOV指令中出现JMP00011

(5)PUSHAL;操作数必须是16位PUSHAX

(6)OUTCX,AL;CX不能作为端口地址的间接访问寄存器OUTDX,AL

(7)INAL,[80H];直接端口地址写法错误INAL,8011

(8)MOVCL,3300H;两操作数的数据类型不一致MOVCX,3300H

3.给定(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,

(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65Ho试分析如下

指令执行后,AX寄存器中的内容:

(l)MOVAX,120011(2)MOVAX,BX

(3)MOVAX,[1200H](4)MOVAX,[BX]

(5)MOVAX,110011[BX](6)MOVAX,[BX+SI]

(7)MOVAX,[1100H+BX+SI]

(DMOVAX,1200H;(AX)=1200H

(2)MOVAX,BX;(AX)=0100H

(3)MOVAX,[1200H];(AX)=4C2AH

(4)MOVAX,[BX];(AX)=3412H

(5)MOVAX,1100HEBX];(AX)=4C2AH

(6)MOVAX,[BX+SI];(AX)=7856H

(7)MOVAX,[1100H+BX+SI];(AX)=65B7H

4.己知(AX)=75A4H,CF=1,分别写出如下指令执行后的结果:

(DADDAX,08FFH(2)INCAX

(3)SUBAX,4455H(4)ANDAX,OFFFH

(5)ORAX.0101H(6)SARAX,1

(7)RORAX,1(8)ADCAX,5

(DADDAX,08FFH(AX)=7EA3HCF=0

(2)INCAX(AX)=75A5HCF=1

(3)SUBAX,4455H(AX)=314FHCF=0

(4)ANDAX,OFFFH(AX)=05A4HCF=O

(5)ORAX,0101H(AX)=75A5HCF=0

(6)SARAX,1(AX)=3AD2HCF=O

(7)RORAX,1(AX)=3AD2HCF=0

(8)ADCAX,5(AX)=75AAHCF=O

5.给定(SS)=8000H,(SP)=200011,(AX)=7A6CH,(DX)=3158H«执行如下程序段,画出每条指

令执行后寄存器的内容和堆栈存储内容的变化情况:

PUSHAX

PUSHDX

POPBX

POPCX

PUSHAX;(AX)=7A6CH,(SP)=1FFEH,(81FFEH)=7A6CH

PUSHDX;(DX)=3158H,(SP)=1EFCH,(81EECH)=3158H

POPBX;(BX)=3158H,(SP)=1FFEH

POPCX;(CX)=7A6CH,(SP)=2000H

6.试分析如下程序段执行完后,BX的内容:817FII

MOVBX,1030H;(BX)=1030H

MOVCL,3;(CL)=3

SHLBX,CL;(BX)=8180H

DECBX;(BX)=817FH

四、设计题

1.现有两个双倍精度字数据1234FEDCII和1123876511,分别存放在数据段中从1000H和2000II

开始的存储单元中,低位在前,高位在后。要求两数相加之后所得的和放在从1000H开始的

内存单元中,设计该程序段。

;3_4_1.ASM

MOVSI,200011;SI指向2000H

MOVDI,1000H;DI指向1000H

CLC;CF=O

MOVCX,4;CX=4,循环相加4次

LL:MOVAL,[SI];取数

ADCAL,[DI];相加

MOV[DI],AL;保存

INCSI;SI增1

INCDI;1)1增1

LOOPLL;CX减1,不为0,转LL

MOVAX,0

ADCAX,0

MOV[DILAX

2.设AX、BX中保存有带符号数,CX、DX中保仔无符号数,请写出实现以下功能的指令或程

序段。

⑴若(CX)〈(DX),则转移到NEXT1。

CMPCX,DX

JBNEXT1

(2)若(AX)XBX),则转移到NEXT2,

CMPAX,BX

JGNEXT2

(3)若(CX)=0,则转移到NEXT3.

CMPCX,0或JCXZNEXT3

JENEXT3

(4)若AX中内容为负,则转移到NEXT4。

TESTAX,8000H或ADDAX,0

JNZNEXT4或JSNEXT4

3.设堆栈寄存器(SS)=2250H。堆栈指示器(SP)=0140H,若在堆栈中存入5个字数据,则SS、

SP的内容各是多少?[(SS)=2250H、(SP)=0136H]如果又取出2个字数据,SS、SP的内容各

是多少?[(SS)=2250H、(SP)=013AH]

4思考与练习题

一、选择题

1.汇编语言程序中可执行的指令位于()中。C

A.数据段B.堆栈段C.代码段D.附加数据段

2.以下内容不是标号和变量属性的是()oB

A.段属性B.地址属性C.偏移属性D.类型属性

3.DOS功能调用中采用屏幕显示单个字符,其值保存在()寄存器。C

A.ALB.AHC.DLD.DH

4.DOS功能调用中,从键盘读取一个字符并回显的是()。A

A.01HB.02HC.09HD.OAH

5.循环程序设计中,要考虑的核心问题是()。1)

A.循环的控制B.选择循环结构C.设置循环参数初始值D.修改循环控制参数

6.对于宏指令和子程序,下列说法不正确的是()。D

A.宏指令不能简化目标程序

B.子程序可以简化目标程序,但执行时间长

C.子程序在执行过程中由CPU处理

1).宏指令在执行时要保护和恢复现场

二、填空题

1.汇编语言是一种面向CPL:指令系统的程序设计语言,采用指令助记符表示操作码和操

作数,用符号地址表示操作数地址。P82

2.汇编语言的语句可由名字、操作符、操作数、注释四部分组成;其中一操作符.是必须具

备的。P83

3.机器指令是指发送给CPL.的命令,在运行时由一CPU_执行;伪指令是发送给汇编程序的

命令,在汇编过程中由汇编程序进行处理:宏指令是指代表一段源程序,通常用于

经常用到的一个程序段场合。P87、P107

4.子程序的基本结构包括子程序说明、现场保护及恢复、子程序体、子程序返回等几个部

分;子程序的参数传递有寄存器、堆栈、存储器等方法。P104、P105

5.DOS功能调用可完成对完成对文件、设备、内存的管理;BIOS的主要功能是外设的控

制;如系统加电自检、引导装入及对键盘、磁盘、显示器、打印机、异步串行通信口等的控

虬。

6.给定如下程序段,在每条指令的右边写出指令的含义和操作功能,指出该程序段完成的功

能及运行结果:

MOVAX,0;AX<=0

MOVBX,1;BX<=1

MOVCX,5;CX<=5

LP:ADDAX,BX;AX<=AX+BX

ADDBX,2;BX<=BX+2

LOOPLP;CX〈=CX—1;若CXWO,转LP

HLT;停机

5

(1)该程序段完成的功能是一Z2〃+1_。

(2)程序运行后:(AX)=36;(BX)=_H_;(CX)=_0_«

三、判断题

1.伪指令是在汇编中用于管理和控制计算机相关功能的指令。()X

2.程序中的“$”可指向下一个所能分配存储单元的偏移地址。(

3.宏指令的引入是为了增加汇编程序的功能。()V

4.多重循环的内循环要完整地包含在外循环中,可嵌套和并列。(

5.子程序结构缩短了程序的长度,节省了程序的存储空间。()J

四、简答题

1.完整的汇编源程序应该由哪些逻辑段组成(数据段、堆栈段、代码段)?各逻辑段的主要作

用是什么(存放数据变量及其预置初值、保存中断和子程序的断点和参数传递、存放程序执

行的代码)?P87

2.简述在机器上建立(为源程序起一个有意义的文件名字,并创建成文本文件)、编辑(在文

本编辑软件EDIT.EXE环境下,输入和编辑源程序)、汇编(通过汇编程序ASM.EXE或

MASN.EXE,将源程序会变成机器语言目标程序.OBJ)、连接(运用连接程序LINK.EXE,将目

标程序.OBJ连接生成执行程序.EXE)、运行(在DOS状态下,直接运行执行程序)、调试(运

用调试程序DEBUG.EXE将执行程序跳入调试界面状态,并进行断点设置调试运行或单步调试

运行操作)汇编语言源程序的过程和步骤。P94

3.什么是伪指令(发送给汇编程序的命令)?程序中经常使用的伪指令有哪些(数据定义、符

号定义、段定义、过程定义、结构定义、模块定义与连接、程序计数器$和起点定义ORG)?

简述其主要功能(数据定义为变量及其类型分配存储单元,并赋予初值;符合定义给一个符

号重新命名;段定义指定逻辑段的名称、范围、断的定位类型、组合类型和类别;过程定义

为程序段定义成过程,并赋予过程名字,以便用CALL指令调用;结构定义用于相互关联的

数据定义;模块定义与连接用NAME为源程序汇编后的目标程序指定模块名,以便连接该目

标模块,并生成执行程序文件;$在汇编过程中,用于存储单元分配计数器,该计数器可在

指令操作数表达式中引用;ORG为数据变量和程序段指定起始位置。)?P87~P93

4.什么是宏指令(代表某功能的一段源程序)?宏指令在程序中如何被调用(在源程序中,通

过宏名字(即宏指令名)进行调用)?P107

5.子程序与宏指令在程序的使用中有何共性(宏和子程序都可用来简化程序,并可使程序多

次对它们调用。)及不同特点(宏操作可直接传递和接收参数,不通过堆栈或其他媒介;子程

序不能直接带参数,需有传递参数时,必须通过堆栈寄存器和存储器进行。宏调用只能简化

源程序的书写,并没有缩短目标代码长度;子程序调用能缩短目标程序长度。应用好操作并

不会在执行目标代码时增加额外的时间开销;子程序调用由于需要保护和恢复现场和断点,

因而延长目标程序的执行时间)?P109

五、设计题

1.编程实现求S=(X2+Y2)/Z的值,并将结果放入RESULT单元。

;XT451.ASM

DATASEGMENT;定义数据段

XDW15

YDW-32

ZDW280

RESULTDW2DUP(?);定义结果保存单元

DATAENDS;数据段结束

CODESEGMENT;定义代码段

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA;初始化DS

MOVDS,AX

MOVAX,X;取出被乘数X存入AX中

IMULX;执行X2操作

MOVCX,AX;乘积的低位字转存至CX

MOVBX,DX;乘积的高位字转存至BX

MOVAX,Y;取出被乘数X存入AX中

IMULY;执行丫?操作

ADDAX,CX;X2+Y2的低位字与Z的低位字相加

ADCDX,BX;X2+Y2的高位字相加

IDIVZ;(X2+Y2)/Z

MOVRESULT,AX;商存入RESULT单元

MOVRESULT+2,DX;余数存入RESULT+2单元

MOVAH,4CH

INT21H;返回DOS

CODEENDS;代码段结束

ENDSTART;汇编结束

2.编程序完成计算S=(A+B)/2-2(AANDB)。

;XT4_5_2.ASM

DATASEGMENT;定义数据段

ADW15

BDW-32

SDW?

RESULTDW2DUP(?);定义结果保存单元

DATAENDS;数据段结束

CODESEGMENT;定义代码段

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA;初始化DS

MOVDS,AX

MOVAX,A;取出被乘数A存入AX中

ADDAX,B;A+B

SARAX,1;(A+B)/2

MOVBX,AX;存入BX中

MOVAX,A;取出被乘数A存入AX中

ANDAX,B;AANDB

SALAX,1;(AANDB)*2

SUBBX,AX:(A+B)/2-2(AANDB)

MOVS,BX;存入S单元

MOVAH,4CH

INT21H;返回DOS

CODEENDS;代码段结束

ENDSTART;汇编结束

3.试编程实现将内存中的若干个无符号字数据中的最大值和最小值找出来,并开辟独立的存

储区域保存结果。

;XT4_5_3.ASM

DATASEGMENT

ARRDW123,456,67,0,34,90,89,67,0,256

CNEQU($-ARR)/2

ZDDW0;最大(数组中任何数均大于AX内容)

ZXDWOFFFFH;最小(数组中任何数均小于BX内容)

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化DS

MOVSI,OFFSETARR;数组首地址送SI

MOVCX,CN;数组元素个数送CX

CALLQZDZXS;调用近过程QZDZXS(求最大最小数)

MOVAH,4CH

INT21H;返回DOS

;求最大最小数子程序名:QZDZXS

;子程序功能:求一组字数据中的最大最小数

;入口参数:数组首地址在SI中,数组个数在CX中

;出口参数:最大数在ZD中,最小数在ZX中

;使用寄存器用X、DX、SI及PSW

QZDZXSPROCNEAR

PUSHSI

SH

DX

PSU

nCX;保护现场

M^

ZDZXO:DX,[SI];取一个数组元素送DX

CP

ZD,DX;AX中内容和DX中内容比较

JB

ZDZX1;(ZD)XDX),转ZDZX1

MV

ZD,DX;较大数存入ZD

CP

ZDZX1:ZX,DX;AX中内容和DX中内容比较

JA

ZDZX2;(ZX)<(DX),转ZDZX1

MV

DZX,DX;较小数存入ZX

ZDZX2:AOSI,2;数组指针加2调整

D

]LP-ZDZXO;循环控制

PCX

POPDX

POPSI;恢复现场

RET;返回主程序

QZDZXSENDP;子程序定义结束

CODEENDS;代码段结束

ENDSTART;汇编结束

4.编写程序,计算如下函数的值:

fIX,X<0

S=<3X,0WXW10

、4X,0>10

;XT4_5_4.ASM

DATASEGMENT

XDB15

SDB?

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX

MOVAL,X

TESTAL,80H

JZLLO

SALAL,1;2X

JMPLL10

LLO:CMPAL,10

JGLL1

MOVBL,AL

SALAL4;3X

ADDAL,BL

JMPLL10

LL1:SALAL,1;4X

SALAL,1

LL10:MOVS,AL

MOVAH,4CH

INT21H;返回DOS

CODEENDS

ENDSTART;汇编结束

5.从键盘输入一系列字符,以回车符结束,编写程序统计其中非数字字符的个数?

;XT4_5_5.ASM

DATASEGMENT

NUMDB0;统计变量

DATAENDS

STACKSEGMENTSTACK;定义堆栈段

DB100DUP(?);开辟100个存储单元

STACKENDS;堆栈段结束

CODESEGMENT;定义代码段

ASSUMECS:CODE,SS:STACK,DS:DATA

START:MOVAX,DATA

MOVDS,AX

LLL:MOVAH,01H;1号调用,从键盘输入一字符存入AL

INT21H

CMPAL,13;与“回车符”的ASCII码比较

JZL2;是“回车符”,转L2(退出)

CMPAL,30H;与“0”的ASCII码比较

JBLI;低于“0”的非数字字符ASCII码,转L1(统计)。

CMPAL,39H;与“9”的ASCII码比较

JALI;高于“9”的非数字字符ASCII码,转L1(统计)。

JMPLLL

LI:INCNUM;非数字字符,统计;计数增1.

JMPLLL;转LLL(继续)

L2:MOVDL,OAH;设置换行符

MOVAH,02H;设置显示功能号

INT21H;换行

MOVDL,NUM;设置显示统计数字(8位二进制数)

MOVCL,4

SHRDL,CL;保留高4位二进制数

ORDL,30H;转换成ASCII码(高1位十六制数的ASCII)

MOVAH,02H;设置显示功能号

INT21H;显示高1位十六制数的ASCH

MOVDL,NUM;设置显示统计数字(8位二进制数)

ANDDL,0FH;保留低4位二进制数

ORDL,30H;转换成ASCII码(低1位十六制数得ASCII)

MOVAH,02H;设置显示功能号

INT21H;显示低1位十六制数的ASCII

MOVDL/H’;设置显示'H'

MOVAH,02H;设置显示功能号

INT21H;显示'H'

MOVAH,4CH;设置返回DOS功能码。

INT21H;返回DOS

CODEENDS;代码段结束

ENDSTART;程序汇编结束

6.编程实现将键盘连续输入的小写字母用大写字母显示出来,小写字母与大写字母之间采用

号分隔,当输入非小写字母时程序停止处理。

;XT456.ASM

STACKSEGMENTSTACK;定义堆栈段

DB100DUP(?);开辟100个存储单元

STACKENDS;堆栈段结束

CODESEGMENT;定义代码段

ASSUMECS:CODE,SS:STACK

START:MOVAH,01H;1号调用,从键盘输入一字符存入AL

INT21H;输入并回显

MOVBL,AL;保存从键盘输入字符

CMPALJa,;与“暧的ASCII码比较

JBL3;低于“a”的ASCH码,转L3(退出)。

CMPAL";与2”的ASCII码比较

JAL3;高于“a”的ASCII码,转L3(退出)。

SUBAL,20H;将AL中字符的ASCII码减去20H变成大写字母。

MOVBL,AL;保存结果

MOVDL,<;显示字符u送DL

MOVAH,02H;2号调用,在显示器上显示字符

INT21H;显示u

MOVDL,BL;结果(大写字母)送DL。

MOVAH,02H;2号调用,在显示器上显示DL中的内容(大写字母)。

INT21H;显示大写字母

MOVDL,20H;空格送DL。()

MOVAH,02H;2号调用,在显示器上显示DL中的内容(大写字母).

INT21H;显示空格(使两结果用空格隔开)

JMPSTART;不是“回车符",转START(继续)

L3:MOVAH,4CH;是“回车符,,,设置返回DOS功能码。

INT21H;返回DOS

CODEENDS;代码段结束

ENDSTART;程序汇编结柬

7.在数据段中有一个字节数组,编程统计其中正数的个数放入、单元保存,统计负数的个数

放入B单元保存。

;XT4_7.ASM

DATASEGMENT

ARRDB-13,46,67,0,-34,-90,89,67,0,26

CNEQU$-ARR;数组长度

ADW?;正数个数统计结果变量

BDW?;负数个数统计结果变量

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化

MOVSI,OFFSETARR;敢组首地址送SI

MOVCX,CN;数组元素个数送CX

L0:MOVDL,[SI];取一个数组元素送DX

TESTDL,80H;DX中内容和0比较

JNZ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论