![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
请汇编语言高手帮帮忙,高分悬赏!
通过串口实现双机通信(在实验系统TDN86/88上实现)在发送机一方通过键盘输入一串字符(字母+数字),并在接收一方显示所接收到的字符。在实验系统TDN86/88上实现。...
通过串口实现双机通信(在实验系统TDN86/88上实现)
在发送机一方通过键盘输入一串字符(字母+数字),并在接收一方显示所接收到的字符。
在实验系统TDN86/88上实现。(要求至少传送26个字母和十个数字)
画出详细的硬件连接图。附控制程序。
请高手编写出相应的汇编程序,然后还有加倍高分重赏!我还有剩余3970分,可以重重赏!
PS:请高手只要把程序写出来就可以了,谢谢—— 展开
在发送机一方通过键盘输入一串字符(字母+数字),并在接收一方显示所接收到的字符。
在实验系统TDN86/88上实现。(要求至少传送26个字母和十个数字)
画出详细的硬件连接图。附控制程序。
请高手编写出相应的汇编程序,然后还有加倍高分重赏!我还有剩余3970分,可以重重赏!
PS:请高手只要把程序写出来就可以了,谢谢—— 展开
6个回答
展开全部
由于没有相应的硬件系统可以调试,所以仅仅根据以前的作业给你两段关键程序,供参考吧。
传输端(发送机)
把字符串从COM1端口传输出去。在传输过程中,传输速率为9600波特,字长为8位,1位停止位,无齐偶校验。
.MODEL SMALL
.DATA
MSG DB "Hello, World";此处我借用hello,world字符,实际时你加一个中断调用键盘输入即可。
MLen EQU $-MSG
.CODE
.STARTUP
MOV AL, 0E3H ;0E3—9600、无齐偶校验、字长8位,1位停止位
MOV DX, 0
MOV AH, 0
INT 14H ;初始化通信口COM1
MOV BX, OFFSET MSG
MOV CX, MLen
MOV DX, 0
again:
MOV AL, [BX]
MOV AH, 1
INT 14H
TEST AH, 80H ;如果发送字符失败,继续发同一个字符,这里可能
JNZ again ;构成死循环。在实际工作过程中,还有其它考虑。
INC BX
LOOP again
.EXIT 0
END
显示端(接收机)
把从COM1端口读入的字符显示在屏幕上。如果通信端口数据未准备好,则程序处于等待状态;若传输出错,则用红色显示字符"?"。
……
again:
MOV DX, 0
MOV AH, 3
INT 14H
TEST AH, 1H ;检测状态字节AH的最后一位,看数据是否准备好
JZ again
MOV DX, 0
MOV AH, 2
INT 14H ;从COM1端口读字符
TEST AH, 80H ;检测读字符是否成功
.IF ZERO? ;读字符成功
AND AL, 7FH ;屏蔽掉最高位,使之为字符
MOV BL, 15 ;正常颜色:白色
.ELSE
MOV AL, '?' ;显示字符"?"
MOV BL, 12 ;错误颜色:红字
.ENDIF
MOV BH, 0
MOV AH, 0EH
INT 10H
JMP again
传输端(发送机)
把字符串从COM1端口传输出去。在传输过程中,传输速率为9600波特,字长为8位,1位停止位,无齐偶校验。
.MODEL SMALL
.DATA
MSG DB "Hello, World";此处我借用hello,world字符,实际时你加一个中断调用键盘输入即可。
MLen EQU $-MSG
.CODE
.STARTUP
MOV AL, 0E3H ;0E3—9600、无齐偶校验、字长8位,1位停止位
MOV DX, 0
MOV AH, 0
INT 14H ;初始化通信口COM1
MOV BX, OFFSET MSG
MOV CX, MLen
MOV DX, 0
again:
MOV AL, [BX]
MOV AH, 1
INT 14H
TEST AH, 80H ;如果发送字符失败,继续发同一个字符,这里可能
JNZ again ;构成死循环。在实际工作过程中,还有其它考虑。
INC BX
LOOP again
.EXIT 0
END
显示端(接收机)
把从COM1端口读入的字符显示在屏幕上。如果通信端口数据未准备好,则程序处于等待状态;若传输出错,则用红色显示字符"?"。
……
again:
MOV DX, 0
MOV AH, 3
INT 14H
TEST AH, 1H ;检测状态字节AH的最后一位,看数据是否准备好
JZ again
MOV DX, 0
MOV AH, 2
INT 14H ;从COM1端口读字符
TEST AH, 80H ;检测读字符是否成功
.IF ZERO? ;读字符成功
AND AL, 7FH ;屏蔽掉最高位,使之为字符
MOV BL, 15 ;正常颜色:白色
.ELSE
MOV AL, '?' ;显示字符"?"
MOV BL, 12 ;错误颜色:红字
.ENDIF
MOV BH, 0
MOV AH, 0EH
INT 10H
JMP again
展开全部
别费劲了,没有人能帮上你的。还是你自己来吧。汇编也就是上学的时候用用吧,不上学了谁老记这个啊,没用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在实验系统TDN86/88上实现。! 有谁能做到?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那么大的东西 高分能顶个屁用啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题还得你自己解决,太费劲了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你花3970元估计有点戏。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询