文档介绍:微机系统实验报告班级:031214学号:03121370姓名:孔玲玲地点:E-II-312时间:第二批实验一汇编语言编程实验一、实验目的掌握汇编语言的编程方法掌握DOS功能调用的使用方法掌握汇编语言程序的调试运行过程二、实验设备PC机一台。三、实验内容(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。(2)在屏幕上显示自己的学号姓名信息。(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入“Q”或“q”时结束。(4)自主设计输入显示信息,完成编程与调试,演示实验结果。考核方式:完成实验内容(1)(2)(3)通过,完成实验内容(4)优秀。实验中使用的DOS功能调用:INT21H表3-1-1显示实验中可使用DOS功能调用AH值功能调用参数结果1键盘输入并回显AL=输出字符2显示单个字符(带Ctrl+Break检查)DL=输出字符光标在字符后面6显示单个字符(无Ctrl+Break检查)DL=输出字符光标在字符后面8从键盘上读一个字符AL=字符的ASCII码9显示字符串DS:DX=串地址,‘$’为结束字符光标跟在串后面4CH返回DOS系统AL=返回码四、实验步骤运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9连续运行。更改数据区的数据,考察程序的正确性。实验程序DATASEGMENTBUFFERDB'03121370konglingling:',0AH,0DH,'$'BUFFER2DB'','$'BUFFER3DB0AH,0DH,'$'DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOVAX,DATA MOVDS,AX movah,09h movDX,OFFSETBUFFER int21h MOV SI,OFFSETBUFFER2lab1: cmpBYTEPTR[SI],'$' jelab2 MOV AL,DS:[SI] AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;showcharacter MOV AH,02H INT 21H MOV AL,DS:[SI] AND AL,0FH ;取低4位 CMP AL,0AH JB C3 ADD AL,07HC3: ADD AL,30H MOV DL,AL ;showcharacter MOV AH,02H INT 21H addSI,1 jmplab1 lab2: movah,09h movDX,OFFSETBUFFER3 int21h movah,01h int21h cmpal,'q' jelab3 mov BL,AL AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB C4 ADD AL,07H C4: ADD AL,30H MOV DL,AL ;showcharacter MOV AH,02H INT 21H MOVAL,BL AND AL,0FH ;取低4位 CMP AL,0AH JB C5 ADD AL,07HC5: ADD AL,30H MOV DL,AL ;showcharacter MOV AH,02H INT 21H jmplab2 lab3: movah,4ch int21hCODEENDSendSTART实验结果实验二数码转换实验一、实验目的掌握不同进制数及编码相互转换的程序设计方法。掌握运算类指令编程及调试方法。掌握循环程序的设计方法。二、实验设备PC机一台。三、实验内容及说明重复从键盘输入不超过5位的十进制数,按回车键结束输入;将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;如果输入非数字字符,则报告出错信息,重新输入;直到输入“Q”或‘q’时程序运行结束。键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。考核方式:完成实验内容(1)(2)(3)(4)通过,完成实验内容(5)优秀。转换过程参考流程如图3-2-2所示。十进制数可以表示为:Dn*10n+Dn-1*10n-1+…+D0*100=SDi*10i其中Di代表十进制数1、2、3、…、9、0。上式可以转换为:SDi*10i=(((Dn*10+Dn-1)*10+Dn-2)*10+…+D1)*10+D0由上式可归纳出十