;;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。
以上就是关于(微机原理与接口技术)试编写程序全部的内容,包括:(微机原理与接口技术)试编写程序、编写一个微机原理的程序,比较两个字符串是否相等、微机原理,请大佬指点!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)