77范文网 - 专业文章范例文档资料分享平台

循环及分支程序设计汇编实验报告_昆明理工大学

来源:网络收集 时间:2018-10-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

昆明理工大学信息工程与自动化学院学生实验报告

( 2012 —2013 学年 第 一 学期 )

课程名称:汇编与微机接口实验 开课实验室:信自楼444 2012 年 11 月 22 日 年级 计科2010级 学号 姓名 成绩 实验项目名实验二 循环及分支程序设计 称 教师 评语 指导教师 李英娜 教师签名: 年 月 日

一、实验目的:

1、熟悉并且掌握汇编语言的基本指令; 2、熟练地掌握循环与分支程序的设计过程;

3、掌握带符号数的比较转移指令:JL、JLE、JG、JGE; 4、伪指令 EQU 及操作符 '$'的使用。

5、熟悉并且掌握BIOS 和DOS中断的调用方法。

二、实验要求:

A、设计要求

1、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。

2、提示编程:① 回车字符的ASCII码为0DH ② 显示字符用INT 21H的2号调用 B、设计要求

已知DATA单元开始存放三个带符号数

1、判断三个数是否同号,若同时为正,显示“+”,若同时为负,则显示“—”,否则显不“*”。

-1-

2、显示三个数中的最小值。 c、设计要求

编写0号中断的处理程序,使得在除法溢出发生时,在屏幕上输出字符串”divide error!”,然后返回DOS。 d、设计要求

编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密

后存入内存缓冲区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虚拟平台。

四、实验内容(算法及运行结果的截图) A、

code segment

assume cs:code start:

mov ah,1 ;输入字符 int 21h

cmp al,0dh ;与回车比较,若该字符是回车则转到exit处执行 je exit

cmp al,'0' ;输入的字符与0比较,若小于0,则转到start处执行 jb start

cmp al,'9' ;输入的字符与9比较,若大于9,则转到output1处执行 jbe output1 cmp al,'A' jb start

-2-

cmp al,'Z' jbe output cmp al,'a' jb start cmp al,'z' jbe output

output1: mov dl,al ;将al中的数据放到dl中 mov ah,2 int 21h jmp start output:mov ah,02h mov dl,'c' int 21h jmp start exit: mov ah,4ch int 21h code ends end start

-3-

B、

data_C segment

DATA DB -5 , 4, 9 ;该处3数值可任意设定 A1 DB 0 A2 DB 0 A3 DB 0

DISP_MESS DB 0DH,0AH,'MIN IS : ' D1 DB 0

D2 DB 0, 'H$'

data_C ends

code segment

assume cs:code,ds:data_C

main proc far push ds sub ax,ax push ax

mov ax,data_C mov ds,ax

MOV BX, OFFSET DATA MOV AL,[BX] INC BX

MOV AH,[BX] CMP AL,AH

JL ALAL1 ;AL

ALAL1: INC BX

MOV DL,[BX] CMP AL ,DL JL ALAL

XCHG AL,DL

ALAL:

CMP AH,DL JL AL_SMALL XCHG AH,DL AL_SMALL:

-4-

MOV A1,DL MOV A2,AH MOV A3, AL

XOR DL,AL ;最大和最小数异或 AND DL,80H NOT DL

TEST DL,80H ;高位为1 表示一正一负,否则为全负或全正 JE YZYF AND AL,80H NOT AL

TEST AL,80H ;高位为1 表示全负 JE QF

MOV AH,02 MOV DL,'+' INT 21H

JMP DISP_SMALL QF:

MOV AH,02 MOV DL,'-' INT 21H

JMP DISP_SMALL YZYF:

MOV AH,02 MOV DL,'*' INT 21H

DISP_SMALL: ;显示最小值

MOV AL,A3 MOV AH,AL

AND AX,0F00FH MOV CL,4 SHR AH,CL CMP AH,0AH JGE IS_AZ ADD AH,30H MOV D1,AH JMP NN_1 IS_AZ:

ADD AH,40H -0AH+1 MOV D1,AH

NN_1:

CMP AL,0AH

-5-

JGE IS_AZ1 ADD AL,30H MOV D2,AL JMP NN_2

IS_AZ1:

ADD AL,40H -0AH+1 MOV D2,AL

NN_2:

MOV AH,09

MOV DX,OFFSET DISP_MESS INT 21H ret

main endp

code ends end main

-6-

C、

assume cs:codesg

codesg segment start:

mov ax,0f000h mov dx,22d mov cx,10d div cx

mov ax,4c00h int 21h codesg ends end start

;程序执行过后,在屏幕中间显示“divide error!”,字体为绿色。 assume cs:code code segment start:

;0号中断处理程序的安装 mov ax,cs mov ds,ax

mov si,offset over ;串传送源地址ds:[si] mov ax,0 mov es,ax

mov di,0200h ;串传送目的地址es:[di]

mov cx,offset overend - offset over ;串传送长度 cld ;设置方向标志位 rep movsb ;串传送

;设置中断向量表项 mov ax,0 mov es,ax

mov word ptr es:[0*4],0200h mov word ptr es:[0*4+2],0

;此四句执行后产生溢出 mov ax,0ffffh mov dx,0ffffh mov cx,10d div cx

;返回DOS状态 mov ax,4c00h

-7-

int 21h

;0号中断处理程序 over:

jmp short over_code ;此指令占两个字节 db \over_code: mov ax,cs mov ds,ax

mov si,0202h ;ds:[si]指向数据段

mov ax,0b800h mov es,ax

mov bx,12*160+36*2 ;es:[bx]指向显示缓冲区 mov cx,13d ;显示13个字符 mov al,2 ;设置字符颜色为绿色 over_loop:

mov ah,ds:[si] mov es:[bx],ah mov es:[bx+1],al inc si add bx,2

loop over_loop

;返回DOS状态 mov ax,4c00h int 21h

overend:nop ;空操作 code ends end start

-8-

D、

data segment

msg db 'please input ten number:',0dh,0ah,'$' bufer db 10 dup(?)

mima db 7,5,9,1,3,6,8,0,2,4 data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds, ax

mov si,offset bufer mov bx,offset mima

mov dx,offset msg mov ah,09 int 21h

mov cx,10 input: mov ah,01 int 21h

mov ah,0 and al,0fh mov di,ax

-9-

mov al,[bx][di] mov [si],al inc si loop input mov ah,4ch int 21h code ends end start

六、实验总结(程序的优缺点,不足和改进的过程)

由于对有些指令不是特别熟悉,在实验过程中遇到了一些困难,但通过和同学的讨论

-10-

慢慢掌握指令的用法,经过几次实验,增强了动手能力,遇到题目只想不去做是不可能有结果的,要不断的去尝试,遇到不会的可以上网查资料或者去图书馆查资料。只有不断的实践才会有所成就。

-11-

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库循环及分支程序设计汇编实验报告_昆明理工大学在线全文阅读。

循环及分支程序设计汇编实验报告_昆明理工大学.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/236114.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: