汇编实验3.docx

上传人:b****8 文档编号:10229476 上传时间:2023-02-09 格式:DOCX 页数:12 大小:929.97KB
下载 相关 举报
汇编实验3.docx_第1页
第1页 / 共12页
汇编实验3.docx_第2页
第2页 / 共12页
汇编实验3.docx_第3页
第3页 / 共12页
汇编实验3.docx_第4页
第4页 / 共12页
汇编实验3.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

汇编实验3.docx

《汇编实验3.docx》由会员分享,可在线阅读,更多相关《汇编实验3.docx(12页珍藏版)》请在冰豆网上搜索。

汇编实验3.docx

汇编实验3

学生实验实习报告册

 

学年学期:

2017-2018学年(春/秋)学期

课程名称:

汇编语言程序设计

学生学院:

计算机科学与技术学院

专业班级:

04011506

学生学号:

2

学生姓名:

联系电话:

重庆邮电大学教务处印制

教师评阅记录表

【重要说明】

●学生提交报告册最终版时,必须包含此页,否则不予成绩评定。

●本报告册模板内容格式除确实因为填写内容改变了布局外,不得变更其余部分的格式,否则不予成绩评定。

报告是否符合考核规范

□符合□不符合

报告格式是否符合标准

□符合□不符合

报告是否完成要求内容

□是□否

报告评语:

报告成绩:

评阅人签名(签章)

年月日

目录

●教师评阅记录表

●实验实习综述报告

●实验实习日志

(本方框及框内文字请在最终版中删除)

【说明】

“实验实习综述报告”和“实验实习日志”至少完成一项,具体视各门课程的评分标准要求确定。

实验实习综述报告

课程名称

汇编语言程序设计

课程编号

040229

开课学院

计算机科学与技术

指导教师

董涛

实验实习地点

综合实验楼B509/B510

学生姓名

学生学号

学院专业

计算机科学与技术

所在班级

04011506

1、实验实习目的及要求

实验目的:

1.掌握比较指令、转移指令和循环指令的使用方法

2.掌握循环结构程序的组成

3.掌握循环程序的设计、调试方法

二、实验实习设备(环境)及要求(软硬件条件)

PC微机一台

三、实验实习项目、内容与步骤

实验内容

1.【示例】求某数据区内负数的个数

2.试编程统计数据区中正数、零和负数的个数。

3.编程求无符号数字节序列中最大值和最小值。

4.从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。

一.实验说明

1.求某数据区内负数的个数

为统计数据区内负数的个数,需逐个判别区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,即得到区内包含负数的个数。

参见程序清单.

2.试编程统计数据区中正数、零和负数的个数。

3.编程求无符号数字节序列中最大值和最小值

实验中可使用BH和BL作为暂存现行最大值和最小值,且在初始时将BH和BL初始化为首字节的内容,循环依次比较每个字节的内容,求得最大值(存于BH中)和最小值(存于BL中),送屏幕显示。

4..从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。

二.实验步骤

1.画出实验流程图。

2.运行Tddebug软件,选择Edit菜单编写实验程序

3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。

4.使用Rmrun菜单中的Run运行程序,观察运行结果。

5.使用Rmrun菜单中的Debug调试程序。

观察构成分支、循环条件的各标志的变化情况及相关寄存器内容。

更改数据区中的数据,考察程序的正确性。

四、实验实习所得结果及分析

画出实验流程图

参考代码:

;确定数据区NUMB中负数的个数(存放于BL中)

DDATASEGMENT

NUMBDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H

MESDB'Thenumberofnegativeis:

$'

DDATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DDATA

START:

MOVAX,DDATA

MOVDS,AX

MOVDI,OFFSETNUMB

XORBL,BL

MOVCX,10

A1:

MOVAL,[DI]

TESTAL,80H

JEA2

INCBL

A2:

INCDI

LOOPA1;统计负数个数

MOVDX,OFFSETMES

MOVAH,09H

INT21H

MOVAL,BL;显示负数个数,注意与实验二所使用的方法的区别

MOVCX,2

A3:

PUSHCX

MOVCL,4

ROLAL,CL

POPCX

MOVBL,AL

ANDAL,0FH

CMPAL,0AH

JBA4

ADDAL,07H

A4:

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAL,BL

LOOPA3

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行Tddebug软件,选择Edit菜单编写实验程序

使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。

使用Rmrun菜单中的Run运行程序,观察运行结果。

使用Rmrun菜单中的Debug调试程序。

观察构成分支、循环条件的各标志的变化情况及相关寄存器内容。

更改数据区中的数据,考察程序的正确性。

五、实验实习结果分析和(或)源程序调试过程

要求三从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。

DATASSEGMENT

cap1db"pleaseinputastring",0dh,0ah,"$"

cap2db"plesaeinputtheletteryousearch",0dh,0ah,"$"

str0db40,?

40dup(0)

str1db40dup(0)

DATASENDS

STACKSSEGMENT

dw40hdup(?

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

movdx,offsetcap1;输出提示“pleaseinputastring"

movah,09h

int21h

movdx,offsetstr0;输入一行字符串

;movdh,0ah;此处错误

movah,0ah

int21h

movdl,0ah;以下三行是实现换行功能

movah,02

int21h

movdl,13;以下三行是实现回车功能

movah,02

int21h

movdx,offsetcap2

movah,09h

int21h

movah,01h

int21h

leasi,str0

leadi,str1

;movdh,dl;此处错误,输入放在al中

movdh,al

callsearch

xordh,dh

movcx,dx

;leadi,str0;以下几句是实现依次输入找到的字符串的位置

leadi,str1;

l4:

;loopzl5

;movcl,[di]

movdl,byteptr[di]

cmpdl,0

jzl5

adddl,30h

movah,02h

int21h

movdl,'.'

movah,02h

int21h

incdi

jmpl4

l5:

MOVAH,4CH

INT21H

searchproc;子程序

pushf

pushax

;movcx,[si+1];此处修改

xorcx,cx

movcl,byteptr[si+1]

movdl,0

movax,1

l3:

cmp[si+2],dh

jnzl1

incdl

mov[di],al

incdi

l1:

incax

cmpax,cx

jal2

incsi

jmpl3

l2:

popax

popf

ret

searchendp

CODESENDS

ENDSTART\

流程图

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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