微机应用系统大作业.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机应用大作业 张炯0405348 共 NUMPAGES 7页,第 PAGE 6页 微机应用系统大作业 张炯 0405348 题目1:用C语言程序先输出序列:0.1.2.3.4,然后调用汇编程序输出:5.6.7.8.9。 要求:用两种方法传递参数(1,传值。2,传址) 1,源程序和注释: ZJPRINT.ASM john01.c .MODEL SMALL .CODE PUBLIC _ZJPRINT1 PUBLIC _ZJPRINT2 _ZJPRINT1 PROC NEAR PUSH BP MOV BP,SP MOV AL,[BP+4] ADD AL,48;将数字转换成字符 MOV AH,0EH INT 10H;调用BIOS中断 POP BP RET _ZJPRINT1 ENDP _ZJPRINT2 PROC NEAR PUSH BP MOV BP,SP MOV AX,[BP+4] MOV BP,AX;将地址放入基址寄存器 MOV AL,[BP];基址寻址 ADD AL,48;将数字转换成字符 MOV AH,0EH INT 10H;调用BIOS中断 POP BP RET _ZJPRINT2 ENDP END extern void ZJPRINT1(int num); extern void ZJPRINT2(int *num); main() { int i; printf(\nTC output number:\n); for(i=0;i5;i++) { printf(%d,,i); } printf(\nASM output number(pass value):\n); for(i=5;i10;i++) { ZJPRINT1(i); printf(,); } printf(\nASM output number(pass address):\n); for(i=5;i10;i++) { ZJPRINT2(i); printf(,); } getch(); } 2,说明: Tc20中使用汇编语言的方法主要有内嵌汇编、中断函数和汇编函数调用三种方式。本作业使用的是调用汇编函数的方法。 ZJPRINT.ASM汇编程序通过MASM程序来编译。在MASM目录下用:MASM ZJPRINT.ASM命令。 john01.c程序在TC目录下用:Tcc –ms –c john01.c来编译。其中:,-ms表示以small内存模型编译(其它模型:-mt,-mm,-mc,-ml,mh), -c表示compile only。 然后将汇编的目标文件拷贝到TC的目录下。使用:tlink lib\c0s john01.obj ZJPRINT.obj,john01.exe, ,lib\cs连接生成可执行程序。以上的c0s.obj和cs.lib不在当前目录中(一般在LIB目录中),连接时,需指明其所在路径。 题目2:PC-PC通讯:实现两个PC机之间的文件的发送和接受。 要求:1,发送文件采用查询方式。 2,接受文件采用中断方式(查询方式),接受后以原文件名存储。 1,硬件连线图 计算机上的DB9串口都是针式(公的),所以连接两台计算机的串口电缆两个DB9必须是孔式的(母的)。简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。但是考虑到做一个PC-PC的串口线就干脆做完整一点吧,方便以后其他高级应用也可以使用。 2,双机通信协议,原理 关于协议: 通过串行端口COM1,完成两台机器传送文件的功能。串口发送采用查询的方式,即每次发送之前都查询串口的发送状态位(LSR的第5位),当为1 ,表示发送寄存器是空的,那么就可以进行数据发送了。 串口接收采用中断的方式。接受的时候程序等待接收中断,如果产生了接受中断,中断处理程序就把接收的字符放到一个相应的存储位置,完成接受功能。 文件的发送和接收包括文件名和文件内容的发送和接收。而这两部分的发送和接收都需要相应的标志来标示,在程序中我简单的定义:发送ZJZJZJZJZJ为开始传送,而$为一个部分传送的完成。相应的接收就按照上面的定义和顺序来确定接受的是文件名和文件内容。文件名采用缓冲的方式一次全部接收后再处理,文件内容可能比较大,就采用追加存储的方式。 关于硬件: 当端口地址小于256采用直接寻址方式;当端口地址大于256,采用间接寻址方式,端口地址放在DX寄存器中。对端口操作使用IN和OUT指令。串口COM1的寄存器地址大于256,所以使用端口操作指令。使用2400的波特率,数据位8位,停止位1

文档评论(0)

wangxing1张 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档