汇编实验五条件转移指令.docx

上传人:b****7 文档编号:10467946 上传时间:2023-02-13 格式:DOCX 页数:9 大小:136.79KB
下载 相关 举报
汇编实验五条件转移指令.docx_第1页
第1页 / 共9页
汇编实验五条件转移指令.docx_第2页
第2页 / 共9页
汇编实验五条件转移指令.docx_第3页
第3页 / 共9页
汇编实验五条件转移指令.docx_第4页
第4页 / 共9页
汇编实验五条件转移指令.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

汇编实验五条件转移指令.docx

《汇编实验五条件转移指令.docx》由会员分享,可在线阅读,更多相关《汇编实验五条件转移指令.docx(9页珍藏版)》请在冰豆网上搜索。

汇编实验五条件转移指令.docx

汇编实验五条件转移指令

汇编实验五条件转移指令

实验报告

──学年第学期

实验课程

汇编语言

学生姓名

123

实验项目

条件转移指令

学院

计算机科学技术

实验性质

专业选修课

班级学号

实验地点

同组人数

1

第组

实验日期

第周星期第节

成绩

5

环境参数

Dosbox-0.74

Masm5.0

一、实验目的及要求

二、实验原理、实验内容

三、实验仪器设备及材料

四、操作方法与实验步骤

五、实验数据记录及处理

六、实验结果分析及讨论

一、实验目的:

1.8088指令:

JZ,JNZ,JC,JNC,CMP,SHR。

2.程序:

用字符搜索法确定字符串长度。

3.程序:

16进制数化为ASCII码的一般方法。

二:

实验任务

1.自编程序:

修改实验准备程序

(二),使除了以16进制数形式显示内存内容外,还能在其右边显示该16进制码所对应的ASCII字符,07-0D的控制字符用'.'代替。

 

源代码:

DATASEGMENT

DATAENDS

STACKSSEGMENTSTACK

STACKSENDS

CODESEGMENT'code'

ASSUMECS:

CODE,DS:

DATA,SS:

STACKS

START:

MOVAX,DATA

MOVDS,AX

MOVSI,0H

MOVBL,10H

LOP:

MOVDL,[SI];先处理高四位

MOVCL,4H

SHRDL,CL;右移四位

CMPDL,0AH;判断是‘0’-‘9’还是‘a'-’f‘

JCJ1;是0-9跳转

ADDDL,7H;是a-f要多加7因为‘9’为390h‘A'为41h相差7h

J1:

ADDDL,30H;以'0'为基址

MOVAH,2H;输出高四位的ASCII码

INT21H

MOVDL,[SI];处理第四位

ANDDL,0FH

CMPDL,0AH;同上

JCJ2

ADDDL,7H

J2:

ADDDL,30H

MOVAH,2H

INT21H;数值输出完毕

MOVDL,20H;输出一个空格

MOVAH,2H

INT21H

MOVDL,[SI];将数值直接作为ASCII输出

MOVDH,06H;判断是否在07-0d之内

CMPDH,[SI]

JNCJ3

MOVDH,0eH

CMP[SI],DH

JNCJ3

MOVDL,2EH;在范围内,换成’.'

J3:

MOVAH,2H;输出

INT21H

MOVDL,20H;第一个字节处理完毕,输出一个空格

MOVAH,2H

debug下不同,所以输出的数据不同,但通过查ASCII表,确定其对应字符正确。

2.BUFX、BUFY和BUFZ9是3个有符号的十六进制数,编写一个比较相等关系的程序:

1)如果这3个数都不相等,则显示0

2)如果这3个数中有两个数相等,则显示1

3)如果这3个数都相等,则显示2

源代码:

DATASEGMENT

DATAENDS

STACKSSEGMENTSTACK

STACKSENDS

CODESEGMENT'code'

ASSUMECS:

CODE,DS:

DATA,SS:

STACKS

START:

MOVAX,DATA

MOVDS,AX

;将三个数分别存到bh,bl,dh中

movah,01h

int21h

movbh,al

movdl,20h

movah,02h

int21h

movah,01h

int21h

movbl,al

movdl,20h

movah,02h

int21h

movah,01h

int21h

movdh,al

movdl,0ah

movah,02h

int21h

;将dl设为字符‘0’

movdl,30h

cmpbh,bl

jnznext1;不相等

incdl;有两个数相等加一

next1:

cmpbh,dh

jnznext2;不相等

incdl

next2:

cmpbl,dh

jnznext3;不相等

incdl;这两个数相等加一

next3:

cmpdl,33h;超过二的话,需要重新修改

jbnext4

movdl,32h;改为‘2’

next4:

movah,02h;输出

int21h

MOVax,4C00H

INT21H

CODEENDS

ENDSTART

编译连接:

MS-DOS下运行结果:

结论:

1、在dos下执行,从键盘输入字符,可以正确判断三者的相等关系,并输出。

2、因为程序调用了21号中断的1号功能可以直接在dos中输入字符,所以没有再用debug调试键入字符。

 

流程图:

 

四、实验步骤

1)     用EDIT或其它编辑软件,编写.ASM源程序,

2)     对其进行汇编及连接,产生.EXE文件。

3)     对.EXE文件进行调试运行。

a.      用DEBUG调试运行。

b.      键入不同的字符,分别进行调试。

c.      在MS-DOS下运行这两个.EXE文件。

五、小结

1、学会了使用条件转移指令进行程序执行控制,就像c++中的if语句。

2、确切地体会到了数据数值与ASCII字符之间的关系。

3、学会了使用软件进行流程图的绘制。

4、程序能完全理解并加上了注释,教会别的同学。

 

仪器设备损坏、非正常损耗材料(试剂)及处理情况:

 

 

教师对报告的最终评价及处理意见:

 

教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1