资源描述:
《汇编上机(实验二)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、昆明理工大学信息工程与自动化学院学生实验报告(201—201学年第一学期)课程名称:汇编与微机接口实验开课实验室:年月日年级学号姓名成绩实验项目名称实验二循环及分支程序设计指导教师教师评语教师签名:年月日一、实验目的:1、熟悉并且掌握汇编语言的基本指令;2、熟练地掌握循环与分支程序的设计过程;3、掌握带符号数的比较转移指令:JL、JLE、JG、JGE;4、伪指令EQU及操作符'$'的使用。5、熟悉并且掌握BIOS和DOS中断的调用方法。二、实验要求:A、设计要求1、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”
2、;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。2、提示编程:①回车字符的ASCII码为0DH②显示字符用INT21H的2号调用B、设计要求已知DATA单元开始存放三个带符号数1、判断三个数是否同号,若同时为正,显示“+”,若同时为负,则显示“—”,否则显不“*”。2、显示三个数中的最小值。c、设计要求编写7c号中断的处理程序,使得在除法溢出发生时,在屏幕上输出字符串”201110405313LiLongzhi”,然后返回DOS。d、设计要求编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后存入内存
3、缓冲区BUFFER。加密表为:输入数字:0、1、2、3、4、5、6、7、8、9密码数字:7,5,9,1,3,6,8,0,2,4提示:加密可通过XLAT指令完成。要求:键盘输入通过BIOS和DOS中断分别实现。三、实验环境汇编程序:MASM6.15,链接程序:LINK.EXE,调试环境:DEBUG.EXE,对操作系统和计算机五特殊要求,如果是WIN7以上操作系统,需要安装DOSBOX虚拟平台。四、实验内容(算法及运行结果的截图)先模拟c盘和设置好默认路径,后面程序则可以在该路径下直接编译、链接和运行。后面文件分别为a.asm、b.asm、c.asm和test.as
4、m、d.asm。a.程序代码:datasegment;定义数据段DB0dataendscodesegmentassumecs:code,ds:datamainprocfar;定义main函数pushds;对ds寄存器进栈保护subax,ax;对ax清零pushax;对ax寄存器进栈保护movax,datamovds,ax;将data段地址赋值给dsnext:movah,07h;调用int21键盘输入(无回显)功能int21hcmpal,0dh;回车ascall码为0dhjEend_dcmpal,'0';对数字处理JGEDY0;>=0JMPNEXT;<'0'...
5、30HDY0:;数字处理函数CMPAL,'9';因为int2107号功能字符信息存于AL中。JLEIS_09CMPAL,'A'JGEDY_A;DAYUAJMPNEXT;<'A'...41HDY_A:CMPAL,'Z'JLEIS_AZCMPAL,'a'JGEDY_xA;DAYUxAJMPNEXT;<'a'...61HDY_xA:CMPAL,'z'JLEIS_AZJMPNEXTIS_AZ:MOVAH,02MOVDL,'c'INT21HJMPNEXTIS_09:MOVAH,2MOVDL,ALINT21HJMPNEXTend_d:ret;用于调用返回mainendpco
6、deendsendmain程序运行截图:b.程序代码:data_CsegmentDATADB5,6,7;编程所用3个数,该处3数值可任意设定A1DB0A2DB0A3DB0DISP_MESSDB0DH,0AH,'MINIS:';输出字符串D1DB0D2DB0,'H$'data_Cendscodesegmentassumecs:code,ds:data_Cmainprocfarpushds;寄存器进栈保护subax,ax;ax寄存器清零pushax;寄存器进栈保护movax,data_Cmovds,ax;将数据段地址赋值给dsMOVBX,OFFSETDATA;将数据
7、段首地址赋值给bxMOVAL,[BX]INCBXMOVAH,[BX]CMPAL,AH;将bx值取出并进行判断是否已取完JLALAL1;AL8、为1表示全负JEQFMO