ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:308KB ,
资源ID:2190050      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2190050.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编上机(实验二).doc)为本站会员(lufeng1000)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

汇编上机(实验二).doc

1、昆明理工大学信息工程与自动化学院学生实验报告( 201 201 学年 第 一 学期 )课程名称:汇编与微机接口实验 开课实验室: 年 月 日年级 学号 姓名 成绩实验项目名称 实验二 循环及分支程序设计 指导教师教师评语教师签名:年 月 日一、实验目的:1、熟悉并且掌握汇编语言的基本指令;2、熟练地掌握循环与分支程序的设计过程;3、掌握带符号数的比较转移指令:JL、JLE、JG 、JGE ;4、伪指令 EQU 及操作符 $的使用。5、熟悉并且掌握 BIOS 和 DOS 中断的调用方法。二、实验要求:A、设计要求1、编写一个程序,判别键盘上输入的字符;若是 1-9 字符,则显示之;若为 A-Z

2、或 a-z 字符,均显示 “c”;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。2、提示编程: 回车字符的 ASCII 码为 0DH 显示字符用 INT 21H 的 2 号调用B、设计要求已知 DATA 单元开始存放三个带符号数1、判断三个数是否同号,若同时为正,显示“+” ,若同时为负,则显示“” ,否则显不“*” 。2、显示三个数中的最小值。c、设计要求编写 7c 号中断的处理程序,使得在除法溢出发生时,在屏幕上输出字符串”201110405313 Li Longzhi”,然后返回 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 中断分别实现。三、实验环境汇编程序:MASM 6.15,链接程序: LINK.EXE,调试环境:DEBUG.EXE,对操作系统和计算机五特殊要求,如果是 WIN7 以上操作系统,需要安装 DOSBOX 虚拟平台。四、实验内容(算法及运行结果的截图)先模拟 c 盘和设置好默认路径,后面程序则可以在该路径下直接编译、链接和运行。后面文件分别为 a.asm、

4、b.asm 、c.asm 和test.asm、d.asm。a. 程序代码:data segment ;定义数据段DB 0data endscode segmentassume cs:code,ds:datamain proc far ;定义 main 函数push ds ;对 ds 寄存器进栈保护sub ax,ax ;对 ax 清零push ax ;对 ax 寄存器进栈保护 mov ax,data mov ds,ax ;将 data 段地址赋值给 dsnext:mov ah,07h ;调用 int 21 键盘输入(无回显)功能int 21hcmp al,0dh ;回车 ascall 码为 0d

5、hjE end_dcmp al,0 ;对数字处理JGE DY0 ;=0JMP NEXT ;0.30HDY0: ;数字处理函数CMP AL,9 ;因为 int21 07 号功能字符信息存于 AL 中。JLE IS_09 CMP AL, AJGE DY_A ;DAYU AJMP NEXT ;A.41HDY_A:CMP AL,ZJLE IS_AZCMP AL,aJGE DY_xA ;DAYU xAJMP NEXT ;a.61HDY_xA:CMP AL,zJLE IS_AZJMP NEXTIS_AZ:MOV AH,02MOV DL,cINT 21HJMP NEXTIS_09:MOV AH,2MOV D

6、L,ALINT 21HJMP NEXTend_d:ret ; 用于调用返回main endpcode endsend main程序运行截图:b.程序代码:data_C segmentDATA DB 5,6,7 ;编程所用 3 个数,该处 3 数值可任意设定A1 DB 0A2 DB 0A3 DB 0DISP_MESS DB 0DH,0AH,MIN IS : ;输出字符串D1 DB 0D2 DB 0, H$data_C endscode segmentassume cs:code,ds:data_Cmain proc farpush ds ;寄存器进栈保护sub ax,ax ;ax 寄存器清零pu

7、sh ax ;寄存器进栈保护mov ax,data_Cmov ds,ax ;将数据段地址赋值给 dsMOV BX, OFFSET DATA ;将数据段首地址赋值给 bxMOV AL,BXINC BXMOV AH,BXCMP AL,AH ;将 bx 值取出并进行判断是否已取完JL ALAL1 ;ALAHXCHG AH,ALALAL1:INC BXMOV DL,BXCMP AL ,DLJL ALALXCHG AL,DLALAL:CMP AH,DLJL AL_SMALLXCHG AH,DLAL_SMALL:MOV A1,DLMOV A2,AHMOV A3, ALXOR DL,AL ;最大和最小数异或

8、AND DL,80HNOT DLTEST DL,80H ;高位为 1 表示一正一负,否则为全负或全正JE YZYFAND AL,80HNOT ALTEST AL,80H ;高位为 1 表示全负JE QFMOV AH,02MOV DL,+INT 21HJMP DISP_SMALLQF:MOV AH,02MOV DL,-INT 21HJMP DISP_SMALLYZYF:MOV AH,02MOV DL,*INT 21HDISP_SMALL:MOV AL,A3MOV AH,ALAND AX,0F00FHMOV CL,4SHR AH,CLCMP AH,0AHJGE IS_AZADD AH,30HMOV

9、 D1,AHJMP NN_1IS_AZ:ADD AH,40H -0AH+1MOV D1,AHNN_1:CMP AL,0AHJGE IS_AZ1ADD AL,30HMOV D2,ALJMP NN_2IS_AZ1:ADD AL,40H -0AH+1MOV D2,ALNN_2:MOV AH,09MOV DX,OFFSET DISP_MESSINT 21H retmain endpcode endsend main程序运行截图:c.程序代码:c.asm:assume cs:codecode segmentstart:mov ax,csmov ds,ax ;将代码段地址交给 dsmov si,offse

10、t do0 mov ax,0mov es,axmov di,200hmov cx,offset do0end - offset do0 ;计算输出字符串长度cldrep movsb;设置中断向量表mov ax,0mov es,axmov word ptr es:7ch*4,200hmov word ptr es:7ch*4+2,0mov ax,4c00hint 21hdo0: jmp short do0startdb “201110405313 Li Longzhi“,0 ;设置输出字符串do0start:push cxmov ax,csmov ds,axmov si,202hmov ax,0

11、b800h ;指向显存mov es,axmov di,12*160+30*2 ;使其显示于屏幕中央show: mov cl,simov ch,0jcxz returnmov es:di,clmov ch,2mov es:di+1,chinc siadd di,2jmp showreturn: pop cxmov ax,4c00hint 21hdo0end:nopcode endsend starttest.asm:assume cs:codecode segmentstart:int 7chmov ax,4c00hint 21hcode endsend start程序运行截图:d.程序代码:d

12、ata segmentmsg db please input ten number:,0dh,0ah,$bufer db 10 dup(?)mima db 7,5,9,1,3,6,8,0,2,4data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds, axmov si,offset bufermov bx,offset mimamov dx,offset msgmov ah,09int 21hmov cx,10input: mov ah,01int 21hmov ah,0and al,0fhmov di,axmov al,bxdimov si,alinc siloop inputmov ah,4chint 21hcode endsend start程序运行截图:五、实验总结(程序的优缺点,不足和改进的过程)这次实验的内容是循环和分支程序设计,我们之前学过了一些转移指令,如 jmp 指令可以修改 CS,IP 的值; jcxz 指令为有条件转移指令,当 cx=0 时转移到标号处执行; loop 指令为循环指令,每循环一次 cx=cx-1,cx 不为 0 转移到标号处执行,当 cx=0 时结束循环。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报