请教会汇编的高手

请教会汇编的高手,第1张

二、写出下列程序的功能和结果

1、

MOV AH 08H 送08号功能,不带显示的键盘输入

INT 21H

CMP AL,“R” 输入字符与大写字母R比较孝蠢袭

JNZ NEXT 不相同则跳转到NEXT

MOV AH,4C 相等则结束程序返回dos

INT 21H

2、

POLL:IN AL,STATUS PORT 将状态端口STATUS PORT 数据送al

TEST AL,80H 测试AL的最高位是否为0

JZ POLL 如为0,则跳转到poll,继续测试,直到为1为此(即状态为不忙或准备好)

MOV AL,STORE 若不0,则将内存store数据送al

OUT DATA PORT ,AL 将al送数据端口DATA PORT中

3、

MOV AL,DATA 将DATA中数据送AL

AND AL,AL

JPE TRANS 若AL中有偶数个1,则转移到TRANS

OR AL,80H 否则将al与80h相或,即将AL最高位置1,其它位不变

TRANS:OUT(VART),AL 将al数据送外设端口vart中

4、

蓝雨705答案正确

三、试述CPU同意外设中断申请后,必须进行的处理工作。

1、关中断。2、保留断点。3、保护现场。4、给出中断入口,转入相应的中断服务程序。5、恢复现场。6、开中断与返回。

上述6步完全正确

四、

(1)试编写一段INTEL8251接收字符的程序段。

data51 equ 308h 8251A数据口

ctr151 equ 309h 8251A命令/状态口

receiv: mov dx,ctr151 接收状态信息

in al,dx

test al,02 测试接收数据准备档薯好?RXRDY=1?

jz checkkey 未准备好,即无数据接收,则转按键发送

mov dx,data51 已准备好,即有数据传送过来,则接收1个字符

in al,dx

mov dl,al 显示接收的字符

mov ah,02h

int 21h

mov ah,0bh 接巧兄收1个字符

int 21h

cmp al,00h 判断是不是非字符键

je checkkey

mov ah,08h否则接收1个字符

int 21h

cmp al,1bh 是ESC?

je over 是,则退出,返回DOS

jmp checkkey 不是,则接收1个字符后,再转按键发送

(2)试编写一段INTEL8251发送字符的程序段。

data51 equ 308h 8251A数据口

ctr151 equ 309h 8251A命令/状态口

MOV DX,CTRL51

transm: in al,dx

test al,01 发送准备好?TXRDY=1?

jz transm 未准备好,则等待

mov dx,data51 已准备好,则将键入的字符

mov al,bl

out dx,al

jmp checkkey 发送1个字符后,再转

模板做的有问题吧,做模板时候计算机名和ip地址是可以设置一个池的,比如计算机命名规则为XX01开始依拍携晌次排序,IP地址从XX.XX.XX.X1开始排序,而且事先可以在AD内建好分配给虚机的用户如user01开始依次类推,等模板下发后在控制台中将用户跟虚拟机绑定,这样就能直接用指定的用户登陆绑定的虚机,而虚袭锋机直接就在隐祥ad内,当然,前提是做模板的虚机得加入到域内。

我以前做过的8251A的双机通信,你参考一下吧!

a.发送端初始化程序及发送控制程序

DATASEGMENT

DA1 DB 5

TABLE1DB 1,2,3,4,5

PORT1 EQU 82H 设8251A控制端口手悔饥地址=82H

PORT2 EQU 80H 设8251A数据端口地址=80H

TABLE2DB ‘OK!$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

SLL:MOV DX,PORT1 设置模式控制字

MOV AL,5FH 异步,8位数据,奇校验

OUT DX,AL 1位停止位,波特率因子64

MOV AL,11H 设置 *** 作命令字,允许发送

OUT DX,AL

MOV AX,DATA

MOV DS,AX

MOV DI,OFFSET TABLE1 设置发送数据指针

MOV CL,DA1CX=发送数据个数

XOR CH,CH

NEXT: MOV DX,PORT1 查询TxRDY有效否?

IN AL,DX 读取状态字

AND AL,01H

JZ NEXT 查询TxRDY=0,发送没准备好

MOV DX,PORT2 查询TxRDY=1,输出一个字节

MOV AL,[DI]

OUT DX,AL

INC DI数据指前哗针增一

LOOP NEXT

LEA DX,TABLE2 屏幕显示”OK!”

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

ENDS SLL

b.接收端初始化程序及接收控制程序:

DATA SEGMENT

DA1 DB 5 传输数据个数

TABLE1 DB 5 DUP(0) 传输数据

PORT1 EQU 62H 8251A控制端口地址=62H

PORT2 EQU 60H8251A数据毕返端口地址=60

TABLE2DB ‘OK!$’ 传输正确提示

TABLE3DB ‘ERR!$’ 传输错误提示

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

SRR: MOV DX,PORT1 设置模式控制字

MOV AL,5FH 异步,8位数据,奇校验

OUT DX,AL 1位停止位,波特率因子64

MOV AL,14H设置 *** 作命令字,允许接收

OUT DX,AL

MOV AX,DATA 设置接收数据指针

MOV DS,AX

MOV DI,OFFSET TABLE1

MOV CL,DA1CX=接收数据个数

XOR CH,CH

COMT: MOV DX,PORT1 查询RxRDY有效否?

IN AL,DX 读取状态字

ROR AL,1

ROR AL,1

JNC COMT RxRDY=0,接收没准备好

ROR AL,1

ROR AL,1

JC ERR PE=1,有奇偶错,显示错误信息

MOV DX,PORT2 接收准备好且无奇偶错

IN AL,DX 则读入从8251A输入一个字节

MOV [DI],AL保存数据到数据缓冲区

INC DI 数据指针增一

LOOP COMT

LEA DX,TABLE2 全部接收完后,屏幕显示”OK!”

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

ERR: LEA DX,TABLE3 屏幕显示”ERR!”

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

ENDS SRR


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

原文地址:https://www.54852.com/yw/12443683.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存