汇编语言与接口技术作业

第四章 80x86汇编语言程序设计

1.伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?

答:区别:伪指令语句是能执行的语句,硬指令语句是CPU可以执行的语句。

伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如何进行汇编。

7.假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语句中的错误及其原因。

  • 1.MOV BYTE PTR[BX], 1000
答:数据类型不匹配,目的地址单元是字节单元,1000大于255。无法存放。
  • 2.MOV BX, OFFSET[SI]
答:OFFSET后只能跟标识符。
  • 3.CMP MYBYTE1, MYBYTE2
答:CMP的两个操作数不能同时在存储器中。
  • 4.MOV AL, MYBYTE1+MYBYTE2
答:运算符只能对常数进行操作,不能对变量进行操作。
  • 5.SUB AL, MYWORD
答:数据类型不匹配,AL是8位的,MYWORD是16位变量。
  • 6.JNZ MYWORD
答:MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。

19.按下面要求写一个简化段定义格式的源程序

  • 1.定义常量NUM,其值为5;数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-1,0,2,5和4,最后一个单元初值不定。
  • 2.代码段中的程序将DATALIST中头NUM个数的累加和存入DATALIST的最后1个字单元中。
.model small
.stack
.data
    num equ 5
    datalist dw -1,0,2,5,4,?
.code
.startup
    mov bx, offset datalist
    mov CX, num
    xor ax, ax
again:
    add ax, [bx]
    inc bx
    inc bx
    loop again

27.假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断。

(1) 若DX>DI,转到ABOVE执行
(2) 若AX>SI,转到GREATER执行。
(3) 若CX=0,转到ZERO执行
(4) 若AX-SI产生溢出,转到OVERFLOW执行。
(5) 若SI≤AX,转到LESS_EQ执行。
(6) 若DI≤DX,转到BELOW_EQ执行。
答:
(1) CMP DX,DI JA ABOVE
(2) CMP AX,SI JG GREATER
(3) CMP CX,0 JE ZERO
(4) CMP AX,SI
JO OVERFLOW
(5) CMP AX,SI
JGE LESS_EQ
(6) CMP DX,DI
JAE BELOW_EQ

33.已知用于LED数码管显示的代码表为

LEDTABLE DB 0C0H,0FGH,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0C1 H,86H,8EH
它依次表示09AF这16个数码的显示代码。编写一个程序实现将LEDNUM中的一个数字(09,AF)转换成对应的LED显示代码

.model small
.stack 256
.data
    LEDTABLE DB 0c0h,0a4h,0b0h,99h,92h,82h.0f8h
    DB 80h,90h,88h,83h,0c6h,0clh,86h,8eh
    LEDNUM DB?
.code
.startup
    mov bx,offset LEDTABLE
    mov al,LEDNUM
    xlat                                          ;al 中存在对应的LED显示代码
    exit 0

第五章 存储器技术

7.简要说明Cache的地址映射方式。Cache的替换算法主要有哪些?为何要进行替换?

cache内存的地址映射主要有以下三种方式:
一、直接映像
二、全相联映像
三、组相联映像

1.LRU(Least Recently Used)最近最少使用策略。
2.LFU(Lease Frequently Used)最不经常使用策略。
3.随机替换策略。

Cache替换算法是影响代理缓存系统性能的一个重要因素,一个好的Cache替换算法可以产生较高的命中率。

9.假设有一个具有20位地址和16位字长的存储器,请问:

<1>该存储器能存储多少个字节的信息? 2^20 x 16 b = 16Mb
<2>如果该存储器由32kx8b的SARM芯片组成,需要多少片?2^24b ÷ 2^15*8 = 2^6 = 64片
<3>需要多少位地址进行芯片选择?64 = 2^6,所以需要6位地址进行芯片选择。

第六章

1.简述接口的概念和功能

接口就是连接与外设之间的部件,它完成与外设之间的信息传送。还包括辅助工作的外围电路。

接口的功能
1.执行命令的功能;
2.返回外设状态的功能;
3.数据缓冲功能;
4.信号转换功能;
5.设备选择功能;
6.数据宽度与数据格式转换功能

2.简述独立编址或统一编址的接口的区别和各自的优缺点。

1.独立编址(专用的I/O端口编址)----存储器和I/O端口在两个独立的地址空间中
(1)优点:I/O端口的地址码较短,译码电路简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计
(2)缺点:需要有专用的I/O指令,程序设计的灵活性较差

2.统一编址(存储器映像编址)----存储器和I/O端口共用统一的地址空间,当一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间
(1)优点:不需要专用的I/O指令,任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,程序设计比较灵活;由于I/O端口的地址空间是内存空间的一部分,这样,I/O端口的地址空间可大可小,从而使外设的数量几乎不受限制
(2)缺点:I/O端口占用了内存空间的一部分,影响了系统的内存容量;访问I/O端口也要同访问内存一样,由于内存地址较长,导致执行时间增加

第七章

3.若8253芯片的接口地址为0D0D0H~0D0D3H,时钟信号为2MHz。现利用计数器0、1、2分别产生周期为,10us的对称方波及每1ms和1s产生一个负脉冲,试画出其与系统的电路连接图,并编写包括初始化在内的程序。

解:根据题目要求可知,计数器0 (CNTO)工作于方式3,计数器1 (CNT1) 和计数器2 (CNT2)工作于方式2。时钟频率2MHz,即周期为0.5us,从而得出各计数器的计数初值分别为:
CNTO:
10us/0.5us= 20
CNT1:
1 ms/0.5us = 2000
CNT2:
1s/0.5us= 2 X 1000000
显然,计数器2的计数初值已超出了16位数的表达范围,需经过一次中间 分频,可将OUT1端的输出脉冲作为计数器2的时钟频率。这样,CNT2的计数初值就等于1s/1ms= 1000。线路连接如图所示。
在这里插入图片描述

8253的初始化程序如下:

MOV DX, 0D0D3H
MOV AL, 16H             ;计数器0,低8位计数,方式3
OUT DX, AL
MOV AL, 74H             ;计数器1,双字节计数,方式2
OUT DX, AL
MOV AL, 0B4H            ;计数器2,双字节计数,方式2
OUT DX, AL
MOV DX, 0D0D0H
MOV AL, 20              ;送计数器0的计数初值
OUT DX, AL
MOV DX, 0D0D1H
MOV AX, 2000            ;送计数器1的计数初值
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX,0D0D2H
MOV AX, 1000            ;送计数器2的计数初值
OUT DX, AL
MOV AL, AH
OUT DX, AL

6.某系统使用8254的通道0作为计数器,计满1000时,向CPU发送中断请求,试编写初始化程序(端口地址自设)。

解:
设端口地址为80H~83H

MOV AL, 001 10000B
OUT 83H, AL
MOV AX, 1000
OUT 80H, AL
MOV AL, AH
OUT 80H, AL

9.什么是波特率?假设异步传输的一-帧信息由1位起始位、7位数据位、1位校验位和1位停止位构成,传送的波特率为9600bps,则每秒钟能传输的字符个数是多少?

解:波特率表示每秒钟传送二进制的位数。每秒钟能传输的字符个数为9600/10=960

16.假设8255A的端口地址为00C0H~00C6H,按下面要求编写初始化程序。

(1)对8255A设置工作方式,A端口工作在方式1,输入; B端口工作在方式0,输出;C端口的高4位配合A端口工作,C端口的低4位为方式0,输入。
(2)用置0/置1方式直接对PC6置1,对PC4置0

答:端口地址0000 0000 1100 0000 ~0000 0000 1100 0110。说明A口地址为00C0H, B
口地址为00C2H,C口地址为00C4H,控制字地址为00C6H。
(1)
控制字为: 1011X001B, 即0B1H(X取0)
MOV AL, 0B1H
MOV DX, 00C6H
OUT DX, AL
(2)
<1>直接对PC6置1时的控制字为: 0XXX1101B,即0DH
MOV AL, 0DH
MOV DX, 00C6H
OUT DX, AL
<2>直接对PC4置0时的控制字为: 0XXX1000B,即08H
MOV AL, 08H
MOV DX, 00C6H
OUT DX, AL

第八章

7.假设8259A的端口地址为92H、93H,如何用它的命令字来禁止IR3和IR5引脚上的请求,又如何撤销这一禁止命令?

解:运用操作命令字0CW1来完成,该操作命令字是奇地址93H
IN AL 93H
OR AL,00101000
OUT 93H,AL

撤销:
IN AL 93H
AND AL,11010111
OUT 93H,AL

12.DMA方式的特点是什么?DMA控制器在系统中起什么作用?

利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。

DMA是直接存取方式。是在存储器与输入输出设备间直接传送数据,提高传输效率,是一种完全由硬件完成输入输出操作的方式。

  • 23
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抒情诗、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值