汇编语言_输入输出程序设计
时间:2025-07-10
时间:2025-07-10
《汇编语言程序设计教程》之
输入输出程序设计
指导老师:XXX 制作人:
XXX
一、实验目的
通过学习《汇编语言程序设计教程》的相关知识完成输入输出程序的相关操作,理解有关改程序的理论知识,掌握设计报告的流程以及解决问题的方法,并且提高利用计算机分析解决综合性实际问题的基本能力,将理论与实践相结合,实现对知识的升华以及灵活运用,具体步骤如下:
1) 掌握输入输出指令的使用; 2) 了解对CMOS RAM的读写
3) 访问CMOS RAM,编程,以“年/月/日 时:分:秒”的格式,显示当前的
日期、时间。
观察并记录运行结果。
二、实验原理及基本技术路线图(方框原理图)
程序源代码:
assume cs:code,ds:data data segment
time db 'yy/mm/dd hh:mm:ss',0dh,0ah,'$' cmos db 9,8,7,4,2,0 data ends
code segment
start:mov ax,data mov ds,ax mov bx,0 mov si,0 mov cx,6 a: push cx
mov al,cmos[bx] out 70h,al in al,71h mov ah,al mov cl,4 shr al,cl and ah,0fh add ax,3030h
mov word ptr time[si],ax inc bx add si,3 pop cx loop a mov ah,6 mov al,0 mov bh,1fh mov cx,0 mov dx,184fh
int 10h mov ah,2 mov bh,0 mov dh,13 mov dl,32 int 10h
mov dx,offset time mov ah,9 int 21h
mov ax,4c00h int 21h code ends end start
三、所用仪器、材料(设备名称、型号、规格等) Masm 6.0,debug。 四、实验方法、步骤
1.使用masm6.0将所写的程序进行编译,生成exe文件,运行。 2.使用debug调试生成的exe文件,使用t命令进行单步调试。 3.记录下关键位置的调试截图。
五、实验过程原始记录(数据、图表、计算等) 1.经过masm编译的程序b6.exe,得到程序运行结果
2.r命令查看寄存器初始状态
3.u命令进行反汇编
4.使用t命令进行单步调试
(1)设置好存储时间coms端口号和存放时间的内存位置的指针
(2)从coms ram的9号单元读出当前年份的BCD码
要读取 CMOS RAM的信息,先要向地址端口70h写入要访问的单元的地址:
(3)从数据端口71h中取得指定单元中的数据,相应的数据输入到AL中,同时将AL中的数据放入到AH中:
(4)将AL中的数据右移4位,并且将AH的高4位置0,得到年份BCD码对于的十进制数据:
(5)将AX中的数据加上3030H,得到十进制数据的ASCII码,并存放的time数据段中:
(6)完成年份的取出和存放,将BX和SI指向的位置改变,BX指向coms的下一个单元,即8号单元,取出月份,SI指向存放月份的位置,即[SI+3];转入第二次循环,取出并存放月份。
(7)从cmos的8号单元取出月份
(8)取出的月份的BCD码放到AL中:
(9)完成转换工作,存放到DS:0003位置,进入下一次循环:
(10)选择cmos的7号单元,取出日期:
(11)完成转换,存放到DS:0006位置,进入下一次循环:
(12)选择cmos的4号单元,取出时:
(13)完成转换,存放到DS:0009位置,进入下一次循环:
(14)选择cmos的2号单元,取出分:
(15)完成转换,将结果存放到DS:0012位置,进入下一次循环:
(16)选择coms的0号单元,取出秒:
(17)完成转换,将结果存放到DS:0015位置,循环结束显示结果:
(18)使用BIOS调用int 10H的6号功能,初始化窗口,并设置窗口属性为蓝底白字,日期时间显示在窗口中间。
设置AH=6,调用6号功能,AL=0初始化窗口:
(19)初始化完成,窗口状态为:
(20)使用BIOS调用int 10h的2号功能,将光标设置在窗口中央:
5、得到日期和时间显示结果:
6、程序运行结束:
六、实验总结
在完成整个设计的过程中,首先是系统的了解了整个输入输
出程序的基本思想,原理和调试。在掌握了整个原理之后便是程序的调试和数据的记录,当然,在这个过程中,难免出现一些小偏差,这就让我更加锻炼了自己的纠错能力以及培养了锲而不舍的精神,尤其是在制作课程设计的过程中更是不断地完善以保证设计书的质量和达到应有的要求。同时是明白了理论与实践相结合的重要性,深刻地理解了“纸上得来终觉浅,绝知此事要躬行”这句话的内涵。觉得这个课程设计的意义不仅仅是一次作业,更重要的是一次突破和一次对自我能力的升华和认可。与此同时,也看到了自己的不足和差距,争取在以后的学习中有更多的创新精神以及自主学习的能力。
…… 此处隐藏:113字,全部文档内容请下载后查看。喜欢就下载吧 ……