(微机原理与接口技术)试编写程序

(微机原理与接口技术)试编写程序,第1张

;;8255端口地址

;;A口20H,B口21H,C口22H,方式控制寄存器23H

SSEG SEGMENT PARA STACK ;堆栈段定义

DW 30H DUP()

SSEG ENDS

CSEG SEGMENT ;代码段定义

ASSUME CS:CSEG,DS:CSEG,SS:SSEG ;内存段分配

ORG 100H ;主程序首址

START: MOV AL,99H ;方式控制字,方式0,A口入,B口出,C口入

OUT 23H,AL ;方式控制字送入方式控制寄存器

IN AL,20H ;从A口读入数据

OUT 21H,AL ;向B口输出数据

CMP AL,80H ;将A口读入的数据与80H比较

JGE SetPc2 ;若读入的据>=80H, 准备将PC2置1

ClrPc2: IN AL,22H ;读入C口当前状态

AND AL,11111011B ;若A口读入的数据<80H,准备将PC2清0复位

MOV DL,AL ;将AL的值暂存于DL

JMP PcOut ;转跳至C口输出程序入口

SetPc2: IN AL,22H ;读入C口当前状态

OR AL,00000100B ;准备将PC2位置1

MOV DL,AL ;将AL的值暂存于DL

PcOut: MOV AL,90H ;方式控制字,方式0,A口入,B口出,C口出

OUT 23H,AL ;方式控制字送入方式控制寄存器

MOV AL,DL ;将暂存于DL的值回送到AL

OUT 22H,AL ;C口输出

JMP START ;循环

CSEG ENDS ;代码段定义完毕

END START ;主程序结束

给你个代码

DATAS SEGMENT

buf1 db 90,91 dup(0)

buf2 db 90 dup(0)

;此处输入数据段代码

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

lea dx,[buf1]

mov ah,10

int 21h

lea si,[buf1+2]

mov cl,[buf1+1]

lea di,[buf2]

NEXT:

cmp byte ptr[si],20h

jz lab1

jnz lab2

lab2:

mov al,[si]

mov [di],al

inc di

lab1:

inc si

loop NEXT

mov byte ptr[di],'$'

mov ah,2

mov dl,10

int 21h

mov ah,9

lea dx,[buf2]

int 21h

MOV AH,4CH

INT 21H

CODES ENDS

END START

设DS=0100H,

字节单元(01020H)=96H,

字节单元(01021H)=28H

MOV BX ,0020H ;BX=0020H

LEA BX ,[ BX ];BX=0020H

OR BX ,0;BX=0020H,CF=0

ADC BX ,[ BX ];BX=0020H+2896H+CF=28B6H

执行上述程序段后,

BX = 28B6H

CF = 0

OF = 0

冯·诺依曼结构

解释:

冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)。

1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯诺曼型结构”计算机。冯诺曼结构的处理器使用同一个存储器,经由同一个总线传输。

冯诺曼结构处理器具有以下几个特点:

必须有一个存储器;

必须有一个控制器;

必须有一个运算器,用于完成算术运算和逻辑运算;

必须有输入和输出设备,用于进行人机通信。

冯·诺依曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和 *** 作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。

在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯·诺依曼结构与哈佛结构处理方式的差别。举一个最简单的对存储器进行读写 *** 作的指令,指令1至指令3均为存、取数指令,对冯诺曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。

data segment ;定义data段

sum dw ;定义一个字类型变量sum

data ends ;data段定义结束

code segment ;定义段code

assume cs:code,ds:data ;code段放在首地址放cs段寄存器

start:mov ax,data ;start标号表示主程序开始,把data段的首地址放在ax寄存器中

mov ds,ax ;把ax的内容放ds中

mov ax,1 ;ax的初值赋值1

mov bx,1

a1: inc bx ;使bx的内容加1

add ax,bx ;ax的内容和bx的内容相加,结果送到ax

cmp bx,100 ;bx的内容是增加到了100

jnz a1 ;如果bx的内容不是100,就跳到a1出执行,即使bx继续自加

mov sum,ax ;把ax的内容送到sum变量,此时ax里的内容就是1+2+3++100的和。

mov ah,4ch ;把中断向量码4c(十六进制)送到ah,这是dos系统中提供的系统调用

int 21h ;dos系统中的标准用法,表示执行软件中断,4c号中断的功能是退出dos

code ends ;代码段结束,告诉汇编程序

end start ;也是汇编的规定,汇编结束

DATA SEGMENT

CLO DW

SUM DW

DATA ENDS

STACK SEGMENT

ST1 DW 64 DUP()

STACK ENDS

CODE SEGMENT

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

START:

MOV AX,DATA

MOV DS,AX ;将数据段段基址装入ds

MOV AX,STACK

MOV SS,AX ;将堆栈段段基址装入ss

MOV CX,2 ;统计个数,初始值

MOV AX,1 ;被加元素,第一个是1

MOV DX,2 ;加数放在dx里,第一个是2

LG: ADD AX,DX ;两个元素相加

CMP AX,1000 ;和1000进行比较

JA NEXT ;大于1000跳转next,否则向下执行

INC CX ;否则个数加一

INC DX ;加数加一

JMP LG ;返回循环

NEXT:

MOV CLO,CX ;将累加个数送入CLO单元

MOV SUM,AX ;将累加和送入sum单元

MOV AH,4CH

INT 21H ;返回dos

CODE ENDS

END START

要求加分。太多题了,累死我了。

14、8088系统中,一个I/O或存储器读写的基本总线周期包含 4 个状态。为了解决CPU和存储器或外设速度不匹配的问题,在CPU中设计了一条 READY 输入线。在存贮器或外设速度较慢时,要在 T3 状态后插入一个或几个 TW 状态周期。13、8088微机系统中,存贮器采用了分段技术,但在系统运行中,可直接识别的当前逻辑

15、8088有两种工作模式,即 最大模式 和 最小模式 ,它可由引脚 MN/MX(MX上面有一横线) 决定。

16、当CPU由INTR引脚上收到中断请求信号,则在当前无高级中断源请求且IF 为1时,在当前指令执行完以后,8088/8086CPU将连续执行两个INTA中断响应周期。第一个中断响应周期是 告诉外设已响应该中断 ;第二个中断响应周期是 获取外设送来的中断类型码 。

17、8086/8088CPU中各单元之间及外设的数据交换,都是通过总线来进行的。从数据传送的方向看,总线 *** 作有两种情况,即 读 和 写 。一个基本的 *** 作周期包含 4 个状态,在存贮器或外设速度较慢时,要在T3 后插入一个或几个 TW 状态。

18、堆栈是一种按照 先进后出 的原则组织的一段存贮区域。8086/8088指令系统中,堆栈 *** 作的指令有 PUSH POP

19、8086/8088CPU中的标志寄存器共有 9 个标志位,其中有 3 个控制标志位, 6 个状态标志位。

20、8086/8088CPU访问I/O端口时,用地址总线的低16 位来访问的,它最多可以访问 64k个I/O端口。

21、8086/8088CPU有一个强有力的中断系统,可直接识别 256 种不同的中断源,根据中断源的不同可分为 外部中断 和 内部中断 两大类

22、已知:DS=37A8H,ES=2500H,SI=7180H,DI=67A0H,则指令MOV AL,[SI]的源 *** 作对应的物理地址为 4EC10H 。

23、设CS=2500H,DS=2400H,SS=2430H,ES=2520H,BP=0200H,SI=0010H,DI=0206H则:(1)指令MOV AX,[BP+SI+4]源 *** 作数的有效地址为 0214H_ ,物理地址为 24514H 。 (2)指令MOV AX,[DI+100H]源 *** 作数的有效地址为 0306H,物理地址为 24306H _ 。

24、8255是一个 并行 接口片,它可提供 3 种工作方式,其中 方式2 只能工作于A口。

25、要组成容量为4K8位的存储器,需要__8 片4K1位的静态RAM芯片并联,或者需要_ 4__片1K8位的静态RAM芯片串联。

26、8088的ALE引脚的作用是_ 地址锁存 __。

27、可屏蔽中断从CPU的__INTR__引脚进入,只有当中断允许标志IF为_1____时,该中断才能得到响应。

28、8086系统最多能识别___256_种不同类型的中断,每种中断在中断向量表中分配有__4__个字节单元,用以指示中断服务程序的入口地址。

29、当电源接通后,机器开始执行程序的第一条指令地址是__FFFF0_____H。

30、一个有16个字的数据区,它的起始地址为70A0:DDF6,那么这个数据区的最后一个字单元的物理地址为 70A0:DE26 H。

31、写出分配给下列中断类型号在中断向量表中的物理地址。

(1) INT 12H 00070H (2) INT 8 0001FH

32、80X86系统中,堆栈是向__上___(上、下)生长的,即栈底在堆栈的__最高地址端 _(最高地址端、最低地址端)。

33、在8086最小模式的典型配置中,需___2___片双向总线收发器8286、8286的OE接自CPU的___DEN__。

34、8086 CPU的地址总线是 20 根,数据总线是 16 根,8086 CPU经加电复位后,执行第一条指令地址是 FFFF0 H。

以上就是关于(微机原理与接口技术)试编写程序全部的内容,包括:(微机原理与接口技术)试编写程序、编写一个微机原理的程序,比较两个字符串是否相等、微机原理,请大佬指点!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10170347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存