东南大学微机原理与接口技术期终考试复习资料汇总

合集下载

东南大学微机原理复习课(接口部分)

东南大学微机原理复习课(接口部分)
启动) 软件触发—写入初值,硬件触发– Gate (08考题)
时间常数计算(计数初值) ,通道定时时间的最大值计算
计数值最大时应置时间常数为0(和LOOP CX相同)
第二十五页,共59页。
T/C 8253:定时器/计数器
第二十六页,共59页。
各种工作方式的输出波形
方式 0 方式 1 方式 2 方式 3 方式 4 方式 5
可编程8253:单通道长时间定时器的软件编程实现—软件定时器
硬件级连的概念---定时中断
第二十四页,共59页。
T/C 8253:定时器/计数器
可编程定时器/计数器(减法)
定时器与计数器的差别--CLK
控制字:高/低字节,BIN/BCD
六种工作方式(数字n个脉冲--n可编程设置) CLK/GATE/OUT的含义(作用) 方式2使用(定时器---频率发生器(n分频器)---软硬件
INTR?
Y
Y
取类型码
Y
Y
IF=1?
TF=1?
执行 下一条指令
Y
硬件监测处理
第二十页,共59页。
PSW入栈、 清IF、TF CS、IP入栈
调中断处理程序 (进入)
Y 又有NMI?
N
执行中断子程序
IP、CS、PSW出栈 返回主程序
IRET
中断优先级——例程
习题5.4
如正以单步方式运行某用户程序(该程序开放外部中断,即 IF=1)的过程中执行一条除法指令时,INTR线上出现可屏蔽中 断请求。然后,这条除法指令产生了除法出错中断。试指出 CPU处理这三种同时出现的中断的顺序。
东南大学微机原理复习课(接口部分)
第一页,共59页。
Cache—主存—外存(辅存) 三级存储系统结构

微机原理与接口技术考试复习资料

微机原理与接口技术考试复习资料

微机原理与接口技术1. 在8086/8088CPU中,为了减少CPU等待取指所需的时间,设置了指令队列。

2.在存储体系中,辅存的作用是弥补主存容量不足的缺陷。

3. 十进制数30.375表示成十六进制数为1E.6 H。

4. 在8086/8088中,一个最基本的总线周期由4个时钟周期组成,假设8086的主频为10MHz,则一个时钟周期是100ns。

5. SBB在形式和功能上都和SUB指令类似, 只是SBB 指令在执行减法运算时, 还要减去CF的值。

6. 采用十六进制书写二进制数,位数可以减少到原来的1/4。

7. 在微型计算机中使用I/O端口地址来区分不同的外设。

8. 采用寄存器寻址方式时,操作就在CPU内部进行, 不需要使用总线周期。

9. 中断触发的方式有电平触发和边沿触发触发两种10.正数的反码与原码相等11. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=0F47FH。

12. 8255芯片是一种并行接口芯片。

13. 在8086/8088微机系统中,将AL内容送到I/O接口中,使用的指令是OUT 端口地址, AL。

14. 8086CPU中负责与I/O端口交换数据的寄存器为AX/AL。

15.十进制小数转换成十六进制小数可采用乘16取整法。

16. 如果指令中的地址码就是操作数的有效地址,那么这种寻址方式称为直接寻址。

17. 8086CPU内部按功能分为两部分,即总线接口部件和执行部件。

18. 如指令中的地址码就是操作数,那么这种寻址方式称为立即数寻址。

19. 堆栈是一种先进后出存储器。

20. CPU每次可以响应1个中断源的中断请求。

21. 在计算机系统的层次结构中,操作系统位于第2层,而机器语言位于第3层。

22. 在计算机系统的层次结构中,汇编语言位于第4层,而高级语言位于第5层。

23. 存储系统三个性能参数是容量、速度和价格/位。

24. 8086的地址线有20条,数据线有16条。

微机原理与接口技术知识点总结

微机原理与接口技术知识点总结

《微机原理与接口技术》复习参考资料教师:万显荣复习资料说明:1、标有红色星号“ ”的内容为重点内容3、本资料末尾附有“《微机原理与接口技术》综合练习题与答案错误修正”和“《微机原理与接口技术》综合练习题与答案中不作要求的部分”,请注意查看。

第一章概述一、计算机中的数制1、无符号数的表示方法:(1)十进制计数的表示法特点:以十为底,逢十进一;共有0-9十个数字符号。

(2)二进制计数表示方法:特点:以2为底,逢2进位;只有0和1两个符号。

(3)十六进制数的表示法:特点:以16为底,逢16进位;有0--9及A—F(表示10~15)共16个数字符号。

2、各种数制之间的转换(1)非十进制数到十进制数的转换按相应进位计数制的权表达式展开,再按十进制求和。

(见书本1.2.3,1.2.4)(2)十进制数制转换为二进制数制●十进制→二进制的转换:整数部分:除2取余;小数部分:乘2取整。

●十进制→十六进制的转换:整数部分:除16取余;小数部分:乘16取整。

以小数点为起点求得整数和小数的各个位。

(3)二进制与十六进制数之间的转换用4位二进制数表示1位十六进制数3、无符号数二进制的运算(见教材P5)4、二进制数的逻辑运算特点:按位运算,无进借位(1)与运算只有A、B变量皆为1时,与运算的结果就是1(2)或运算A、B变量中,只要有一个为1,或运算的结果就是1(3)非运算(4)异或运算A、B两个变量只要不同,异或运算的结果就是1二、计算机中的码制(重点 )1、对于符号数,机器数常用的表示方法有原码、反码和补码三种。

数X的原码记作[X]原,反码记作[X]反,补码记作[X]补。

注意:对正数,三种表示法均相同。

它们的差别在于对负数的表示。

(1)原码定义:符号位:0表示正,1表示负;数值位:真值的绝对值。

注意:数0的原码不唯一(2)反码定义:若X>0 ,则[X]反=[X]原若X<0,则[X]反= 对应原码的符号位不变,数值部分按位求反注意:数0的反码也不唯一(3)补码定义:若X>0,则[X]补= [X]反= [X]原若X<0,则[X]补= [X]反+1注意:机器字长为8时,数0的补码唯一,同为000000002、8位二进制的表示范围:原码:-127~+127反码:-127~+127补码:-128~+1273、特殊数10000000●该数在原码中定义为:-0●在反码中定义为:-127●在补码中定义为:-128●对无符号数:(10000000)2= 128三、信息的编码1、十进制数的二进制数编码用4位二进制数表示一位十进制数。

微机原理与接口技术复习资料(概念背诵)

微机原理与接口技术复习资料(概念背诵)

1、微处理器(CPU)由运算器、控制器、寄存器组三部分组成。

2、运算器由算术逻辑单元ALU、通用或专用寄存器组及内部总线三部分组成。

3、控制器的功能有指令控制、时序控制、操作控制,控制器内部由程序计数器PC、指令寄存器IR、指令译码器ID、时序控制部件以及微操作控制部件(核心)组成。

4、8088与存储器和I/O接口进行数据传输的外部数据总线宽度为8位,而8086的数据总线空度为16位。

除此之外,两者几乎没有任何差别。

5、在程序执行过程中,CPU总是有规律的执行以下步骤:a从存储器中取出下一条指令b指令译码c如果指令需要,从存储器中读取操作数d执行指令e如果需要,将结果写入存储器。

6、8088/8086将上述步骤分配给了两个独立的部件:执行单元EU、总线接口单元BIU。

EU作用:负责分析指令(指令译码)和执行指令、暂存中间运算结果并保留结果的特征,它由算数逻辑单元(运算器)ALU、通用寄存器、标志寄存器、EU控制电路组成。

BIU作用:负责取指令、取操作、写结果,它由段寄存器、指令指针寄存器、指令队列、地址加法器、总线控制逻辑组成。

7、8088/8086CPU的内部结构都是16位的,即内部寄存器只能存放16位二进制码,内部总线也只能传送16位二进制码。

8、为了尽可能地提高系统管理(寻址)内存的能力,8088/8086采用了分段管理的方法,将内存地址空间分为了多个逻辑段,每个逻辑段最大为64K个单元,段内每个单元的地址长度为16位。

9、8088/8086系统中,内存每个单元的地址都有两部分组成,即段地址和段内偏移地址。

10、8088/8086CPU都是具有40条引出线的集成电路芯片,采用双列直插式封装,当MN/MX=1时,8088/8086工作在最小模式,当MN/MX=0时,8088/8086工作在最大模式。

11、8088/8086 CPU内部共有14个16位寄存器。

按其功能可分为三大类,即通用寄存器(8个)、段寄存器(4个)、控制寄存器(2个)。

东南大学微机原理复习课(汇编部分)

东南大学微机原理复习课(汇编部分)
1. 基本概念(选择题与填空题)——30% 2. 汇编程序部分(程序阅读理解和编写) 3道中题—— 35% 3.存储器与接口电路(连线、计算、编程) 1-2道大题—— 35%(存储器、中断、定时计数器、 并口、A/D与D/A)
仔细审题:字节、字、DB、DW、字符、字符串 列出存储单元图 接口题:写出地址译码分析过程 编程题代码完整,加注释
溢出: 运算结果超出范围 CF/OF (AX)=A000H, ADD AX,7000H ADD AX,-7000H 在微机系统中,数值以补码表示和存储的 例: -4 八位100H-4=0FCH,16位10000H-4=0FFFCH 例:汇编指令 MOV AX, -3 (AX)=?
(1) 数制、补码的概念与运算
ASCII码: 00-7FH 字符(美国标准信息交换代码 ) 0DH—— CR 回车 0AH—— LF 换行 字符:‘0’-‘9’——30-39H; ‘A’——41H, ‘a’——61H
(2)8086/8088 CPU硬件结构
CPU基本构成: 执行单元EU:执行指令,含ALU和通用寄存器; 总线接口单元BIU:与存储器或I/O端口之间进行数据传送, 并能形成物理地址,含段寄存器和指令指针寄存器; ——并行-流水线,预取-指令队列
(2)8086/8088 CPU硬件结构
有效地址EA(偏移量地址) 逻辑地址=段基址S和偏移地址 物理地址=S*16+EA (得到20位物理地址,A19--A0 )
存储器:高字节高地址,低字节低地址。 堆栈段:SS表示堆栈段的段基,SP指向栈顶 PUSH AX ;(SP)(SP-2);(SP+1)(AH);(SP)AL POP AX;(AL)(SP); (AH)(SP+1); (SP)(SP+2) 并不改变堆栈里单元内容,以字为单位操作,SP值总是偶数, 先进后出(FILO)。 中断矢量表:中断类型号n=0~255,256*4=1K (00000003FFH ),连续存放,高字节CS,低字节IP。

东南大学微机原理与接口技术期终考试复习资料汇总

东南大学微机原理与接口技术期终考试复习资料汇总

1.设置CX=0,则LOOP指令将执行多少次例如:mov cx, 0delay: loop delay正确答案是: DCMPSB这条指令结束的时候,如果比较的串相等,则________。

=1 =1=0 不为0正确答案是: B3.在取指令CMP BX, 100H的源操作数的时候使用的逻辑地址最可能的是________。

:100H :IP:100H :IP正确答案是: B4. 在一个字符串中查找一个字符,使用REPNZ SCASB指令,执行完后,如果______表示没有找到。

=1 =0 且ZF=0=0,且ZF=1 =1正确答案是: B5. 指令RET 8是FAR过程的返回语句,执行之后,SP的值会______。

A.+8C.+10D.+12正确答案是: D6. REPZ重复前缀重复的条件是________<>0 且ZF=1 =0,或ZF=0=0,且ZF=0 <>0 或ZF=1正确答案是: A12. 下面的指令,对CF会产生影响的指令是_____。

AX AXAX AX正确答案是: C15. JMP WORD PTR[SI]这条指令的最大跳转范围是________。

字节至+32767字节字节至+127字节字节至+32768字节至+512KB正确答案是: A19. 16位汇编的寻址方式中,能作为基址变址寻址方式的寄存器是_____。

, DI, SS, DS ,BX,CX,DX, SP,SI,DI ,BP,SI,DI正确答案是: D23. 如果(AL)=83H,则执行CBW之后,AX的值为_______。

正确答案是: A25. 以下的公式中,_________的结果是下一条指令的物理地址。

*16+IP *16+IP+本条指令的字节数*16+IP *10+IP正确答案是: A1. 在内存中从Table开始的10个单元中连续存放0到9的平方值,任给一个0到9的数X,该数存放在内存单元XX中,查表求X的平方值,并将结果存于内存YY单元中。

微机原理与接口技术总复习

微机原理与接口技术总复习

微机原理与接⼝技术总复习微机原理与接⼝技术总复习第⼀部分:填空题第⼀章微机的基本知识1.1基本知识结构微机的构成(包括硬件:主机+外设;软件:操作系统+编译程序+汇编程序+诊断程序+数据库等)微机的⼯作原理和⼯作过程①⼯作原理(冯.诺依曼原理)②⼯作过程(取指令、分析指令、执⾏指令)③控制器的两个主要功能了解微机的主要技术指标数的原码、反码、补码的表⽰⽅法及补码的运算⼆、⼋、⼗、⼗六进制数的表⽰及其相互转换ASCII码、BCD码的表⽰⽅法及其运算、修正原则⽆符号数与符号数的运算及其对标志位的影响1.2相关习题1.对于⼆进制数0110 1001B,⽤⼗进制数表⽰时为:105D;⽤⼗六进制数表⽰时为:69H。

BCD2.设机器字长为8位,最⾼位是符号位。

则⼗进制数–11所对应的原码为:10001011B。

3.已知某数的原码是10110110B,则其反码是11001001B ;补码是11001010B 。

4.⼀个8位⼆进制数⽤补码⽅式表⽰的有符号数的范围是-128~+127 。

第⼆章微处理器与系统结构2.1基本知识结构掌握8086CPU的内部结构与主要引脚信号功能1、内部结构(BIU与EU)组成与功能2、主要引脚信号AD0~AD15, A16/S3~A19/S6,(地址锁存的必要性)BHE, NMI, INTR, INTA, HOLD, HLDA, RESET,READY, ALE, DEN,LOCK,RD,WR,M/IO。

熟悉8086 CPU 内部寄存器阵列了解8086最⼤组态与最⼩组态的区别熟悉存储器物理地址的⽣成及存储器组织20位地址如何⽣成;存储器是如何组织的,字节、字、字符串在内存中是如何存放的。

熟悉CPU中的标志寄存器及堆栈6个状态标志+3个控制标志;堆栈定义、堆栈组成及操作,为什么要设置堆栈?熟悉系统的输⼊/输出结构和基本总线周期(会画读、写周期基本时序图)2.2相关习题1.8086 CPU从功能上分为EU 和BIU 两部分。

微机原理与接口技术复习内容及标准答案

微机原理与接口技术复习内容及标准答案

微机原理与接口技术复习内容及标准答案1.微机系统的硬件由哪几部分组成?答:三部分:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。

2.什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。

分三组:地址总线,数据总线,控制总线。

3.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO设备之间的数据传送。

执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。

4.8086指令队列的作用是什么?答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。

5.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。

6.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。

7.设存储器的段地址是4ABFH,物理地址为50000H,其偏移地址为多少?答:偏移地址为54100H。

(物理地址=段地址*16+偏移地址)8.8086/8088CPU有哪几个状态标志位,有哪几个控制标志位?其意义各是什么?答:状态标志位有6个: ZF,SF,CF,OF,AF,PF。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、设置CX=0,则LOOP指令将执行多少次?例如:mov cx, 0delay: loop delayA、0B、1C、65535D、65536正确答案就是: D2、REPZ CMPSB这条指令结束的时候,如果比较的串相等,则________。

A、SF=1B、ZF=1C、ZF=0D、CX不为0正确答案就是: B3、在取指令CMP BX, 100H的源操作数的时候使用的逻辑地址最可能的就是________。

A、DS:100HB、CS:IPC、ES:100HD、SS:IP正确答案就是: B4、在一个字符串中查找一个字符,使用REPNZ SCASB指令,执行完后,如果______表示没有找到。

A、ZF=1B、CX=0 且ZF=0C、CX=0,且ZF=1D、OF=1正确答案就是: B5、指令RET 8就是FAR过程的返回语句,执行之后,SP的值会______。

A、+8B、-8C、+10D、+12正确答案就是: D6、REPZ重复前缀重复的条件就是________A、CX<>0 且ZF=1B、CX=0,或ZF=0C、CX=0,且ZF=0D、CX<>0 或ZF=1正确答案就是: A12、下面的指令,对CF会产生影响的指令就是_____。

A、INC AXB、DEC AXC、NEG AXD、NOT AX正确答案就是: C15、JMP WORD PTR[SI]这条指令的最大跳转范围就是________。

A、-32768字节至+32767字节B、-128字节至+127字节C、-32768字节至+32768字节D、-512KB至+512KB正确答案就是: A19、16位汇编的寻址方式中,能作为基址变址寻址方式的寄存器就是_____。

A、SI, DI, SS, DSB、AX,BX,CX,DXC、BX, SP,SI,DID、BX,BP,SI,DI正确答案就是: D23、如果(AL)=83H,则执行CBW之后,AX的值为_______。

A、0FF83HB、8883FHC、8003FHD、0083FH正确答案就是: A25、以下的公式中,_________的结果就是下一条指令的物理地址。

A、CS*16+IPB、CS*16+IP+本条指令的字节数C、SS*16+IPD、CS*10+IP正确答案就是: A1、在内存中从Table开始的10个单元中连续存放0到9的平方值,任给一个0到9的数X,该数存放在内存单元XX中,查表求X的平方值,并将结果存于内存YY单元中。

编写程序,并在DEBUG中进行调试与验证结果。

(提示:考虑平方表的每一项需要什么数据类型才合适, XLAT指令就是否合适?应该如何查表?)、8086、MODEL SMALL、DATAORG 10HTABLE BYTE 0,1,4,9,16,25,36,49,64,81X BYTE 7Y BYTE ?、CODESTART: MOV AX , @DATAMOV DS , AXMOV BX , OFFSET TABLEMOV AL , XXLATMOV Y , ALEND START2、假设CX:BX中放了4位非压缩的BCD码表示的十进制数4386,请编写完整程序将这个数转成2进制数放到DI寄存器中,并用DEBUG调试与验证之、8086、MODEL SMALL、DATA、CODESTART: MOV AX , @DATAMOV DS , AXMOV CX , 0403HMOV BX , 0806HMOV DI , 0MOV AX , 0ADD AL , BLADD DI , AXMOV AL , 10MUL BHADD DI , AXMOV AX , 100MUL CLADD DI , AXMOV AX , 1000XCHG CH , CLAND CX ,0FHMUL CXADD DI , AXEND START3、利用跳转表技术实现根据用户输入的星期几的数字代号在屏幕上显示星期几的英文名称的功能。

(提示:1)键盘输入的就是数字的ASCII码,需要转换成数字。

2)建立一张跳转表,表中存放打印每个星期的程序段的入口地址。

3)考虑怎么使程序代码量最小。

)、8086、MODEL SMALL、DATATABLE BYTE 'Monday$$$$','Tuesday$$$','Wednesday$','Thursday$$','Friday$$$$','Saturday$$','Sunday$$$$'、CODESTART: MOV AX , @DATAMOV DS , AXMOV AH , 01HINT 21HCMP AL , 30HJBE EXITCMP AL , 38HJAE EXITAND AX , 0FHSUB AL , 30HDEC ALMOV CL , 10MUL CLLEA DX , TABLEADD DX , AXMOV AH , 9INT 21HEXIT: MOV AH , 4CHINT 21HEND START4、已知数据段有以下定义:NUM DW 3570STRING DB 5 DUP(20H),’$’; 20H为空格的ASCII码请编写完整程序,在屏幕上以十进制的形式将NUM这个数打印出来,可以借助STRING这个字符串。

(NUM这个数可以定义为一个任意字型数)。

、8086、MODEL SMALL、DATAORG 100HNUM WORD 3570STRING BYTE 4 DUP(20H),'$'、CODESTART:MOV AX , @DATAMOV DS , AXLEA DI , STRINGMOV AX , NUMMOV CX , 4;每次循环除以10,将商作为下次的被除数,余数即为对应的十进制数字DEC DILP:PUSH CXCWDMOV CX , 10DIV CXPOP CXMOV BX , CXADD DL , 30H ;转化为对应的ASCII码MOV [BX][DI] , DLLOOP LPMOV AH , 09H ;输出字符串,以‘$’结尾LEA DX , STRINGINT 21HMOV AH , 4CH ;退出程序INT 21HEND START5、统计以‘$’字符结束的字符串string的字符个数。

、8086、MODEL SMALL、DATAORG 100HSTRING BYTE 'HELLO,WORLD!!!','MY NAME IS ASM','$'LEN BYTE ?STR BYTE 3 DUP(20) , '$'、CODESTART:MOV AX , @DATAMOV DS , AXLEA DI , STRINGMOV LEN , 0MOV BL , '$'CP:CMP BL , [DI];bl中的值就是否为'$',若就是则调到continue,若不就是则继续比较,相应的值加1 JZ CONTINUEINC LENINC DIJMP CPCONTINUE: MOV AL , LENLEA SI , STRMOV CX , 3DEC SILP:PUSH CXCBWMOV CL , 10DIV CLPOP CXMOV BX , CXADD AH , 30HMOV [BX][SI] , AHAND AX , 0FFHLOOP LPMOV AH , 09HLEA DX , STRINT 21HMOV AH ,4CHINT 21HEND START6、十进制到二进制数转换。

从键盘取得一个十进制数,将其以二进数形式显示出来。

要求定义回车换行子程序、从键盘获得十进制数(0~128之间),并存放在BL中的子程序,用二进制显示BL中数据的子程序。

、8086、MODEL SMALL、DATA、CODESTART:MOV AX,@DATAMOV DS,AXMAIN PROC FARCALL SHURUCALL CRLFCALL PRTCALL CRLFMOV AH,4CHINT 21HMAIN ENDPSHURU PROC NEAR ;出口参数BLPUSH AX ;保护现场PUSH CXMOV BL,0NEWCHAR:MOV AH,1INT 21H ;将键盘输入的字符的ASCII码传给AL寄存器SUB AL,30HJL EXIT ;小于0转CMP AL,9JG EXIT ;大于9转XCHG AL,BLMOV CL,10MUL CL ;将以前的值乘以10XCHG AL,BLADD BL,AL ;加这一次读的值JMP NEWCHAREXIT:POP CXPOP AXRETSHURU ENDPCRLF PROC NEARPUSH AXPUSH DXMOV DL,0DH ;回车MOV AH,2INT 21HMOV DL,0AH ;换行MOV AH,2INT 21HPOP DXPOP AXRETCRLF ENDPPRT PROC NEAR ;入口参数BLPUSH AXPUSH CXPUSH DXMOV CX,8LP:ROL BL,1 ;循环左移,将二进制最高位挪到末尾MOV BH,BLAND BL,01H ;只保留最后一位,即二进制的第一位ADD BL,30H ;转化为0或1的ASCII码MOV DL,BL ;调用DOS的输出字符功能MOV AH,02HINT 21HMOV BL,BHLOOP LPPOP DXPOP CXPOP SIRETPRT ENDPEND START7、利用递归程序,计算N!。

具体要求:用键盘输入一个数N(1~6之间),利用一个递归过程FAC来计算N!(N放在AL中,结果在DX中),然后将计算的结果以十进制形式打印到屏幕上。

、8086、MODEL SMALL、DATARESULT WORD ?STRING BYTE 5 DUP(?),'$'、CODESTART: MOV AX,@DATAMOV DS,AXMAIN PROC FARCALL SHURUCALL FACCALL CRLFMOV DX,AXCALL PRTMOV AH,4CHINT 21HMAIN ENDPSHURU PROC NEARMOV AH,1INT 21HSUB AL,30HJL EXITCMP AL,6JG EXITEXIT:RETSHURU ENDPMOV RESULT,DXFAC PROC NEAR ;入口参数AL(N的值),出口参数DX(N!)CMP AL,0JNZ F1MOV DX,1RETF1:PUSH AXDEC ALCALL FACPOP CX ; 把N的值传给CXCALL MULT ; 把N*FAC(N-1)传给DXRETFAC ENDPMULT PROC NEARMOV AL,CLMUL DLMOV DX,AXRETMULT ENDPPRT PROC NEARLEA SI,STRINGMOV CX,4DEC SILP:PUSH CXCWDMOV CX,10DIV CXPOP CXMOV BX,CXADD DL,30H ;转化成ASCII码MOV [BX][SI],DLLOOP LPMOV AH,09HLEA DX,STRINGINT 21HRETPRT ENDPCRLF PROC NEARPUSH AXPUSH DXMOV DL,0DH ;回车MOV AH,2INT 21HMOV DL,0AH ;换行MOV AH,2INT 21HPOP DXPOP AXRETCRLF ENDPEND START。

相关文档
最新文档