微机原理与接口技术课后习题答案_第1页
微机原理与接口技术课后习题答案_第2页
微机原理与接口技术课后习题答案_第3页
微机原理与接口技术课后习题答案_第4页
微机原理与接口技术课后习题答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、1 思考与练习题一、选择题1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备2.微机的性能主要取决于( )。A (B计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码4.采用补码表示的8位二进制数真值范围是( )。C A.-127+127 B.-1 27+128 C.-128+127 D.-128+1285.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H6.某数在计算机中用压缩BCD码表

2、示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147二、填空题1.微处理器是指_CPU_;微型计算机以_ CPU _为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P52.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总

3、线。P94.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P125.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P166.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19三、判断题1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )2.计算机中数据的表示范围不受计算机字长的限制。( )×3

4、.计算机地址总线的宽度决定了内存容量的大小。( )4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码)四、简答题1.微处理器和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?P232.微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?P8113.微型计算机系统软件的主要特点是什么?包括哪些内容?P11124.计算机中常用的数制有哪些?如何进行数制之间的转换?P13155.ASCII码和BCD码有哪些特点?其应用场合是什么?P1920五、数制转换题1.将下列十进制数分别转换为二进制数、十六进制数和压缩BCD码

5、。 (1)25.82 1 1001.1101B ; 19.DH ; 0010 0101.1000 0010 BCD (2)412.15 1 1001 1100.0010B ; 19C.2H ; 0400 0001 0010.0001 0101 BCD (3)513.46 10 0000 0001.0111 ; 201.7H ; 0101 0001 0011.0100 0110 BCD (4)69.136 0100 0101.0010 ; 45.2H ; 0101 1001.0001 0011 0110 BCD2.将下列二进制数分别转换为十进制数和十六进制数。 (1)11 1001.101 57

6、.625D ; 39.AH (2)11 0010.1101 50.8125D ; 32.DH (3)1011.1101 1 11.84375D ; B.D8H (4)10 1101.0111 45.4375D ; 2D.7H3.将下列十六进制数分别转换为二进制数、十进制数和BCD码。 (1)7B.21 111 1011.0010 0001B ; 123.12890625D ; 123.12890625 BCD (2)127.1C 1 0010 0111.0001 11B ; 295.06640625D ; 295.06640625 BCD (3)6A1.41 101 1010 0001.010

7、0 0001B ; 1697.25390625D ; 1697.25390625 BCD (4)2DF3.4 10 1101 1111 0011.01B ; 11763.25D ; 11763.25 BCD4.写出下列十进制数的原码、反码、补码表示(采用8位二进制数)。 (1)96 96原=0110 0000 ; 96反=0110 0000 ; 96补=0110 0000 (2)31 31原=0001 1111 ; 31反=0001 1111 ; 31补=0001 1111 (3)-42 -42原=1010 1010 ; -42反=1101 0101 ; -42补=1101 0110 (4)-

8、115 -115原=1111 0011 ; -115反=1000 1100 ; -115补=1000 11015.已知下列补码,求其原值的十进制表示。 (1)92H -110D (2)8DH -115D (3)B2H -78D (4)4C26H +19494D6.按照字符所对应的ASCII码表示,查表写出如下字符的ASCII码: a、 K、 G、 +、 DEL、SP、 CR、 $ 。 61H 4BH 47H 2BH 7FH 20H 0DH 24H2 思考与练习题一、选择题1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路2.以下

9、不属于BIU中的功能部件是( )。B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器3.堆栈操作中用于指示栈顶地址的寄存器是( )。B A.SS B.SP C.BP D.CS4.指令指针寄存器(IP)中存放的内容是( )。B A.指令 B.指令地址 C.操作数 D.操作数地址5.8086系统可访问的内存空间范围是( )。B A.0000HFFFFH B.00000HFFFFFH C.0216 D.02206.8086的I/O地址空间采用16位数寻址时,可访问的端门数容量为( )。C A.16KB B.32KB C.64KB D.1MB7.8086最大和最小工作方式的主要差别是

10、( )。D A.数据总线的位数不同 B.地址总线的位数不同 C.I/O端口数的不同 D.单处理器与多处理器的不同二、填空题1.8086的内部结构由_EU_和_BIU_组成,前者功能是_执行指令_,后者功能是_总线操作_。P24 P262.8086取指令时,会选取_CS_作为段基值,再加上由_IP_提供的偏移地址形成20位物理地址。3.8086有两种外部中断请求线,它们分别是_INTR_和_NMI_。P324.8086的标志寄存器共有_9_个标志位,分为_6_个_状态_标志位和_3_个_控制_标志位。P285.8086为访问1MB内存空间,将存储器进行_分段_管理;其_物理_地址是唯一的;偏移地

11、址是指_相对段基地址的偏移量_;逻辑地址常用于_程序中_。P29 P20 P34 P356.逻辑地址为1000H:0230H时,其物理地址是_10230H_,段地址是_1000H_,偏移量是_0230H_。7.时钟周期是指_CPU基本时间计量单位_,总线周期是指_一次总线操作时间_,总线操作是指_CPU经外部总线对存储器或I/O端口进行一次信息输入和输出的过程_。P378.8086工作在最大方式时CPU引脚MN/-MX应接_地_;最大和最小工作方式的应用场合分别是_多处理器和单处理器系统_。P38 P39三、判断题1.IP中存放的是正在执行的指令偏移地址。( )×2.从内存单元偶地址

12、开始存放的数据称为规则字。( )3.EU执行算术和逻辑运算后的结果特征可由控制标志位反映出来。( )×4.指令执行中插入TI,和TW是为了解决CPU与外设之间的速度差异。( )×5.总线操作中第1个时钟周期通常是取指周期。( )×6.8086系统复位后重新启动时从内存地址FFFF0H处开始执行。( )四、简答题1.8086微处理器中的指令队列起什么作用(EU从指令队列取指令的缓冲作用),其长度是多少字节(6个字节)?P262.什么是逻辑地址(无符号32位二进制数),它由哪两部分组成(段地址和偏移地址)? 8086的物理地址是如何形成的(物理地址=段地址*10H+偏

13、移地址)?P353.8086微机系统中存储器为什么要分段(8086系统内的地址寄存器均是16位,只能寻址64KB;将1MB存储器分成逻辑段,每段不超过64KB空间,以便CPU操作。),各逻辑段之间的关系如何(可重叠、交叉、紧密连接和分离)?P344.I/O端口有哪两种编址方式(统一编址和独立编址),8086的最大I/O寻址空间是多少(64KB)?P365.8086的最大工作模式(8086、8087和8089通过总线控制器8288产生对总线的控制信号)和最小工作方式(8086直接产生总线控制信号)的主要区别是什么?他们分别应用在何种场合(多处理器和单处理器系统)?P396.简述实地址方式(由段地

14、址和偏移地址计算产生物理地址,其物理地址可以超过20位)和虚拟8086方式(由段地址和偏移地址计算产生的有效物理地址为20位)的区别。P417.简述Pentium微处理器的主要特性。P44五、分析题1.有一个由10个字组成的数据区,其起始地址为1200H:0120H。试写出该数据区的首末存储单元的实际地址(12120H12120H+10*2-1=12133H)。2.若一个程序段开始执行之前,(CS)=33AOH,(IP)=0130H,试问该程序段启动执行指令的实际地址是什么(33A00H+0130H=33B30H)?3.有两个16位的字31DAH和5E7FH,它们在8086系统存储器中的地址分

15、别为00130H和00134H,试画出它们的存储示意图。地址存储空间00130H0DAH00131H31H00134H7FH00135H5EH4.将字符串“Good!”的ASCII码依次存人从01250H开始的字节单元中,画出它们存放的内存单元示意图。地址存储空间01250HG01251Ho01252Ho01253Hd01254H!5.8086微处理器读/写总线周期各包含多少个时钟周期(4个时钟周期)?什么情况下需要插入TW等待周期(当T3上升沿检测到READY=0时,在T3与T4之间插入TW)?应插入多少个TW,取决于什么因素(READY=0持续的时间长短)?什么情况下会出现空闲状态TI(B

16、IU不执行总线操作的时钟周期。例如:8086执行MUL、DIV指令长指令时,BIU有段时间不执行总线操作;因此,插入TI)?P383 思考与练习题一、选择题1.寄存器间接寻址方式中,要寻找的操作数位于( )中。B A.通用寄存器 B.内存单元 C.段寄存器 D.堆栈2.下列指令中正确的是( )。C A.MOV AL,BX B.MOV CS,AX C.MOV AL,CL D.MOV BX,SI3.下列指令中错误的是( )。C A.MOV AX,1234H B.INC BX C.SRL AX,2 D.PUSH DX4.设(SP)=1010H,执行POP AX后,SP中的内容为( )。B A.101

17、1H B.1012H C.1OOEH D.100FH5.给定(AL)=80H,(CL)=02H,指令SHR AL,CL执行后的结果是( )。B A.(AL)=40H B.(AL)=20H C.(AL)=C0H D.(AL)=E0H6.将AX清零并使CF位清零,下面指令错误的是( )。A A.SUB AX,BX B.XOR AX,AX C.MOV AX,0(不影响FR) D.AND AX,0OOOH二、填空题1.计算机指令通常由_操作码字段_和_操作数字段_两部分组成;指令对数据操作时.按照数据的存放位置可分为_立即数、寄存器操作数、存储器操作数_。2.寻址的含义是指_寻找操作数的过程_;808

18、6指令系统的寻址方式按照大类可分为_与操作数有关的寻址方式、与I/O端口有关的寻址方式_;其中寻址速度最快的是_立即数寻址_。P54P573.指令MOV AX,ES:BX+O1OOH中,源操作数位于_物理地址为ES*10H+BX+0100H的存储单元_;读取的是_附加数据ES_段的存储单元内容。4.堆栈是一个特殊的_存储器区域_,其操作是以_2字节单元_为单位按照_先进后出_原则来处理;采用_SP_指向栈顶地址,入栈时地址变化为_SP<=(SP)-2_。P575.I/O端口的寻址有_直接端口寻址和间接端口寻址_两种方式;采用8位数端口地址(直接端口寻址)时,可访问的端口地址为_0255_

19、;采用16位数端口地址(间接端口寻址)时,可访问的端口地址为_065535_。P57 P58三、分析计算题1.指出如下指令中源操作数和目的操作数的寻址方式: (1)MOV AX,100H (2)MOV CX,AX (3)ADD SI,1000 (4)SUB BX,SI+100 (5)MOV BX+300,AX (6)AND BP,DI 源操作数 目的操作数 (1)MOV AX,100H 立即数 寄存器 (2)MOV CX,AX 寄存器 寄存器 (3)ADD SI,1000 立即数 寄存器间接 (4)SUB BX,SI+100 变址 寄存器 (5)MOV BX+300,AX 寄存器 变址 (6)

20、AND BP,DI 寄存器间接 寄存器2.分析如下指令的正误,对错误指令说明出错误原因并加以收正: (1)MOV 1200,23H (2)MOV 1020H,CX (3)MOV 1000H,2000H (4)MOV IP,O00H (5)PUSH AL (6)OUT CX,AL (7)IN AL,80H (8)MOV CL,3300H (1)MOV 1200,23H ;未指明数据类型 MOV BYTE PTR1200,23H (2)MOV 1020H,CX ;立即数不能作为目标操作数 MOV 1020H,CX (3)MOV 1000H,2000H ;两操作数不能均是内存单元 MOV BYTE

21、PTR 1000H,2000H (4)MOV IP,000H ;IP不能在MOV指令中出现 JMP 000H (5)PUSH AL ;操作数必须是16位 PUSH AX (6)OUT CX,AL ;CX不能作为端口地址的间接访问寄存器 OUT DX,AL (7)IN AL,80H ;直接端口地址写法错误 IN AL,80H (8)MOV CL,3300H ;两操作数的数据类型不一致 MOV CX,3300H 3.给定(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(2010lH)=34H,(20102H)=56H,(20103H)=78H,(2120

22、0H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H。试分析如下指令执行后,AX寄存器中的内容: (1)MOV AX,12O0H (2)MOV AX,BX (3)MOV AX,1200H (4)MOV AX,BX (5)MOV AX,1100HBX (6)MOV AX,BX+SI (7)MOV AX,11OOH+BX+SI (1)MOV AX,1200H ;(AX)=1200H (2)MOV AX,BX ;(AX)=0100H (3)MOV AX,1200H ;(AX)=4C2AH (4)MOV AX,BX ;(AX)=3412H (5)MOV AX,1

23、100HBX ;(AX)=4C2AH (6)MOV AX,BX+SI ;(AX)=7856H (7)MOV AX,1100H+BX+SI ;(AX)=65B7H4.已知(AX)=75A4H,CF=1,分别写出如下指令执行后的结果: (1)ADD AX,08FFH (2)INC AX (3)SUB AX,4455H (4)AND AX,OFFFH (5)OR AX,0101H (6)SAR AX,1 (7)ROR AX,1 (8)ADC AX,5 (1)ADD AX,08FFH ;(AX)= 7EA3H CF=0 (2)INC AX ;(AX)= 75A5H CF=1 (3)SUB AX,445

24、5H ;(AX)= 314FH CF=0 (4)AND AX,0FFFH ;(AX)= 05A4H CF=0 (5)OR AX,0101H ;(AX)= 75A5H CF=0 (6)SAR AX,1 ;(AX)= 3AD2H CF=0 (7)ROR AX,1 ;(AX)= 3AD2H CF=0 (8)ADC AX,5 ;(AX)= 75AAH CF=05.给定(SS)=8000H,(SP)=2000H,(AX)=7A6CH,(DX)=3158H。执行如下程序段,画出每条指令执行后寄存器的内容和堆栈存储内容的变化情况: PUSH AX PUSH DX POP BX POP CX PUSH AX

25、;(AX)=7A6CH,(SP)=1FFEH,(81FFEH)=7A6CH PUSH DX ;(DX)=3158H,(SP)=1FFCH,(81FFCH)= 3158H POP BX ;(BX)=3158H,(SP)=1FFEH POP CX ;(CX)=7A6CH,(SP)=2000H6.试分析如下程序段执行完后,BX的内容:817FH MOV BX,1030H ;(BX)=1030H MOV CL,3 ;(CL)=3 SHL BX,CL ;(BX)=8180H DEC BX ;(BX)=817FH四、设计题1.现有两个双倍精度字数据1234FEDCH和11238765H,分别存放在数据段中

26、从1000H和2000H开始的存储单元中,低位在前,高位在后。要求两数相加之后所得的和放在从1000H开始的内存单元中,设计该程序段。 ;3_4_1.ASM MOV SI,2000H ;SI指向2000H MOV DI,1000H ;DI指向1000H CLC ;CF=0 MOV CX,4 ;CX=4,循环相加4次LL: MOV AL,SI ;取数 ADC AL,DI ;相加 MOV DI,AL ;保存 INC SI ;SI增1 INC DI ;DI增1 LOOP LL ;CX减1,不为0,转LL MOV AX,0 ADC AX,0 MOV DI,AX2.设AX、BX中保存有带符号数,CX、D

27、X中保仔无符号数,请写出实现以下功能的指令或程序段。 (1)若(CX)<(DX),则转移到NEXT1。 CMP CX,DX JB NEXT1 (2)若(AX)>(BX),则转移到NEXT2。 CMP AX,BX JG NEXT2 (3)若(CX)=0,则转移到NEXT3。 CMP CX,0或JCXZ NEXT3 JE NEXT3 (4)若AX中内容为负,则转移到NEXT4。 TEST AX,8000H或ADD AX,0 JNZ NEXT4或JS NEXT4 3.设堆栈寄存器(SS)=2250H。堆栈指示器(SP)=0140H,若在堆栈中存入5个字数据,则SS、SP的内容各是多少?(

28、SS)=2250H、(SP)=0136H 如果又取出2个字数据,SS、SP的内容各是多少?(SS)=2250H、(SP)=013AH4 思考与练习题一、选择题1.汇编语言程序中可执行的指令位于( )中。C A.数据段 B.堆栈段 C.代码段 D.附加数据段2.以下内容不是标号和变量属性的是( )。B A.段属性 B.地址属性 C.偏移属性 D.类型属性3.DOS功能调用中采用屏幕显示单个字符,其值保存在( )寄存器。C A.AL B.AH C.DL D.DH4.DOS功能调用中,从键盘读取一个字符并回显的是( )。A A.01H B.02H C.09H D.0AH5.循环程序设计中,要考虑的核

29、心问题是( )。D A.循环的控制 B.选择循环结构 C.设置循环参数初始值 D.修改循环控制参数6.对于宏指令和子程序,下列说法不正确的是( )。D A.宏指令不能简化目标程序 B.子程序可以简化目标程序,但执行时间长 C.子程序在执行过程中由CPU处理 D.宏指令在执行时要保护和恢复现场二、填空题1.汇编语言是一种面向_CPU指令系统_的程序设计语言,采用_指令助记符_表示操作码和操作数,用_符号地址_表示操作数地址。P822.汇编语言的语句可由_名字、操作符、操作数、注释_四部分组成;其中_操作符_是必须具备的。P833.机器指令是指_发送给CPU的命令_,在运行时由_CPU_执行;伪指

30、令是_发送给汇编程序的命令_,在汇编过程中由_汇编程序_进行处理;宏指令是指_代表一段源程序_,通常用于_经常用到的一个程序段_场合。P87、P1074.子程序的基本结构包括_子程序说明、现场保护及恢复、子程序体、子程序返回_等几个部分;子程序的参数传递有_寄存器、堆栈、存储器_等方法。P104、P1055.DOS功能调用可完成对_完成对文件、设备、内存_的管理;BIOS的主要功能是_外设的控制;如系统加电自检、引导装入及对键盘、磁盘、显示器、打印机、异步串行通信口等的控制_。6.给定如下程序段,在每条指令的右边写出指令的含义和操作功能,指出该程序段完成的功能及运行结果: MOV AX,0 ;

31、AX<=0 MOV BX,1 ;BX<=1 MOV CX,5 ;CX<=5 LP: ADD AX,BX ;AX<=AX+BX ADD BX,2 ;BX<=BX+2 LOOP LP ;CX<=CX-1;若CX0,转LP HLT ;停机 (1)该程序段完成的功能是_。 (2)程序运行后:(AX)=_36_;(BX)= _11_;(CX)= _0_。三、判断题1.伪指令是在汇编中用于管理和控制计算机相关功能的指令。( )×2.程序中的“$”可指向下一个所能分配存储单元的偏移地址。( )3.宏指令的引入是为了增加汇编程序的功能。( )4.多重循环的内循环要

32、完整地包含在外循环中,可嵌套和并列。( )5.子程序结构缩短了程序的长度,节省了程序的存储空间。( )四、简答题1.完整的汇编源程序应该由哪些逻辑段组成(数据段、堆栈段、代码段)?各逻辑段的主要作用是什么(存放数据变量及其预置初值、保存中断和子程序的断点和参数传递、存放程序执行的代码)?P872.简述在机器上建立(为源程序起一个有意义的文件名字,并创建成文本文件)、编辑(在文本编辑软件EDIT.EXE环境下,输入和编辑源程序)、汇编(通过汇编程序ASM.EXE或MASN.EXE,将源程序会变成机器语言目标程序.OBJ)、连接(运用连接程序LINK.EXE,将目标程序.OBJ连接生成执行程序.E

33、XE)、运行(在DOS状态下,直接运行执行程序)、调试(运用调试程序DEBUG.EXE将执行程序跳入调试界面状态,并进行断点设置调试运行或单步调试运行操作)汇编语言源程序的过程和步骤。P943.什么是伪指令(发送给汇编程序的命令)?程序中经常使用的伪指令有哪些(数据定义、符号定义、段定义、过程定义、结构定义、模块定义与连接、程序计数器$和起点定义ORG)?简述其主要功能(数据定义为变量及其类型分配存储单元,并赋予初值;符合定义给一个符号重新命名;段定义指定逻辑段的名称、范围、断的定位类型、组合类型和类别;过程定义为程序段定义成过程,并赋予过程名字,以便用CALL指令调用;结构定义用于相互关联的

34、数据定义;模块定义与连接用NAME为源程序汇编后的目标程序指定模块名,以便连接该目标模块,并生成执行程序文件;$在汇编过程中,用于存储单元分配计数器,该计数器可在指令操作数表达式中引用;ORG为数据变量和程序段指定起始位置。)?P87P934.什么是宏指令(代表某功能的一段源程序)?宏指令在程序中如何被调用(在源程序中,通过宏名字(即宏指令名)进行调用)?P1075.子程序与宏指令在程序的使用中有何共性(宏和子程序都可用来简化程序,并可使程序多次对它们调用。)及不同特点(宏操作可直接传递和接收参数,不通过堆栈或其他媒介;子程序不能直接带参数,需有传递参数时,必须通过堆栈寄存器和存储器进行。宏调

35、用只能简化源程序的书写,并没有缩短目标代码长度;子程序调用能缩短目标程序长度。应用好操作并不会在执行目标代码时增加额外的时间开销;子程序调用由于需要保护和恢复现场和断点,因而延长目标程序的执行时间)?P109五、设计题1.编程实现求S=(X2+Y2)/Z的值,并将结果放人RESULT单元。;XT4_5_1.ASMDATA SEGMENT ;定义数据段 X DW 15 Y DW -32 Z DW 280 RESULT DW 2 DUP(?) ;定义结果保存单元DATA ENDS ;数据段结束CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA START: MOV

36、 AX,DATA ;初始化DS MOV DS,AX MOV AX,X ;取出被乘数X存入AX中 IMUL X ;执行X2操作 MOV CX,AX ;乘积的低位字转存至CX MOV BX,DX ;乘积的高位字转存至BX MOV AX,Y ;取出被乘数X存入AX中 IMUL Y ;执行Y2操作 ADD AX, CX ;X2+Y2的低位字与Z的低位字相加 ADC DX, BX ;X2+Y2的高位字相加 IDIV Z ;(X2+Y2)/Z MOV RESULT,AX ;商存入RESULT单元 MOV RESULT+2,DX ;余数存入RESULT+2单元 MOV AH,4CH INT 21H ;返回D

37、OS CODE ENDS ;代码段结束 END START ;汇编结束2.编程序完成计算S=(A+B)/2-2(A AND B)。;XT4_5_2.ASMDATA SEGMENT ;定义数据段 A DW 15 B DW -32 S DW ? RESULT DW 2 DUP(?) ;定义结果保存单元DATA ENDS ;数据段结束CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;初始化DS MOV DS,AX MOV AX,A ;取出被乘数A存入AX中 ADD AX, B ;A+B SAR AX,1 ;(A+B)/2 M

38、OV BX,AX ;存入BX中 MOV AX,A ;取出被乘数A存入AX中 AND AX, B ;A AND B SAL AX,1 ;(A AND B)*2 SUB BX,AX ; (A+B)/2-2(A AND B) MOV S,BX ;存入S单元 MOV AH,4CH INT 21H ;返回DOS CODE ENDS ;代码段结束 END START ;汇编结束3.试编程实现将内存中的若干个无符号字数据中的最大值和最小值找出来,并开辟独立的存储区域保存结果。;XT4_5_3.ASMDATA SEGMENT ARR DW 123,456,67,0,34,90,89,67,0,256 CN E

39、QU ($-ARR)/2 ZD DW 0 ;最大(数组中任何数均大于AX内容) ZX DW 0FFFFH ;最小(数组中任何数均小于BX内容)DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART: MOV AX,DATA MOV DS,AX ;初始化DS MOV SI,OFFSET ARR ;数组首地址送SI MOV CX,CN ;数组元素个数送CX CALL QZDZXS ;调用近过程QZDZXS(求最大最小数) MOV AH,4CH INT 21H ;返回DOS ;求最大最小数子程序名:QZDZXS ;子程序功能:求一组字数据中的最大最小数 ;

40、入口参数:数组首地址在SI中,数组个数在CX中 ;出口参数:最大数在ZD中,最小数在ZX中 ;使用寄存器:CX、DX、SI及PSWQZDZXS PROC NEAR PUSH SI PUSH DX PUSH CX ;保护现场ZDZX0: MOV DX,SI ;取一个数组元素送DX CMP ZD,DX ;AX中内容和DX中内容比较 JNB ZDZX1 ;(ZD)>(DX),转ZDZX1 MOV ZD,DX ;较大数存入ZDZDZX1: CMP ZX,DX ;AX中内容和DX中内容比较 JNA ZDZX2 ;(ZX)<(DX),转ZDZX1 MOV ZX,DX ;较小数存入ZXZDZX2

41、: ADD SI,2 ;数组指针加2调整 LOOP ZDZX0 ;循环控制 POP CX POP DX POP SI ;恢复现场 RET ;返回主程序QZDZXS ENDP ;子程序定义结束CODE ENDS ;代码段结束 END START ;汇编结束 4.编写程序,计算如下函数的值:;XT4_5_4.ASMDATA SEGMENT X DB 15 S DB ?DATA ENDSCODE SEGMENT ASSUME DS:DATA, CS:CODESTART: MOV AX,DATA MOV DS,AX MOV AL,X TEST AL,80H JZ LL0 SAL AL,1 ;2X JM

42、P LL10LL0: CMP AL,10 JG LL1 MOV BL,AL SAL AL,1 ;3X ADD AL,BL JMP LL10LL1: SAL AL,1 ;4X SAL AL,1LL10: MOV S,AL MOV AH,4CH INT 21H ;返回DOSCODE ENDS END START ;汇编结束 5.从键盘输入一系列字符,以回车符结束,编写程序统计其中非数字字符的个数?;XT4_5_5.ASM DATA SEGMENT NUM DB 0 ;统计变量 DATA ENDS STACK SEGMENT STACK ;定义堆栈段 DB 100 DUP(?) ;开辟100个存储单

43、元 STACK ENDS ;堆栈段结束 CODE SEGMENT ;定义代码段 ASSUME CS:CODE,SS:STACK,DS:DATA START: MOV AX,DATA MOV DS,AX LLL: MOV AH,01H ;1号调用,从键盘输入一字符存入AL INT 21H CMP AL,13 ;与“回车符”的ASCII码比较 JZ L2 ;是“回车符”,转L2(退出) CMP AL,30H ;与“0”的ASCII码比较 JB L1 ;低于“0”的非数字字符ASCII码,转L1(统计)。 CMP AL,39H ;与“9”的ASCII码比较 JA L1 ;高于“9”的非数字字符ASCII码,转L1(统计)。 JMP LLL L1: INC NUM ;非数字字符,统计;计数增1。 JMP LLL ;转LLL(继续) L2: MOV DL,0AH ;设置换行符 MOV AH,02H ;设置显示功能号 INT 21H ;

温馨提示

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

评论

0/150

提交评论