汇编语言程序设计实验报告
更新时间:2023-10-02 13:19:01 阅读量: 综合文库 文档下载
《汇编语言程序设计》实验报告
实验室:S318 最后一次实验时间: 2010 年 5 月18 日 第12周星期二1 - 2节
学院:计算机科学与技术学院 专业:计算机科学与技术
实验一
实验题目:
认识Tddebug集成环境
实验目的:
1. 2. 3. 4.
熟悉汇编程序的开发过程。 认识Tddebug集成操作软件。
掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。 掌握INT 21H软件中断来调用DOS内部子程序的方法
实验主要步骤:
1.运行Tddebug软件,选择Edit菜单编写实验程序
2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 3.使用Rmrun菜单中的Run运行程序,观察运行结果。
4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存器及数据区的内容。过程如下:
1) 按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条指令的执行一定会
使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
2) 检查内存数据区的内容,关键是找出用户程序的数据段和附加段:
? 方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES
寄存器的值:偏移地址”,即可显示用户指定的数据区 ? 方法2:选择菜单View| Dump,弹出内存数据显示窗口。 3) 查看执行结果:按Alt+F5,切换到用户窗口。 5.更改数据区中的数据,考察、调试程序的正确性。 6.程序代码:
;数据传送实验,采用相对寻址方式
DDATA SEGMENT ;定义源数据段 MSR DB \LEN EQU $- MSR DDATA ENDS
EXDA SEGMENT ;定义附加数据段 MSD DB LEN DUP(?) EXDA ENDS
MYSTACK SEGMENT STACK ;定义堆栈段 DW 20 DUP(?)
MYSTACK ENDS
CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DDATA,ES:EXDA START: MOV AX,DDATA
MOV DS,AX ;装载数据段寄存器 MOV AX,EXDA
MOV ES,AX ;装载附加数据段寄存器 MOV SI,OFFSET MSR MOV DI,OFFSET MSD MOV CX,LEN MOV BX,0
NEXT: MOV AL,MSR[BX] ;开始传输数据
MOV ES:MSD[BX],AL INC BX LOOP NEXT PUSH ES
POP DS MOV DX,OFFSET MSD MOV AH,9
INT 21H MOV AH,4CH
INT 21H CODE ENDS END START
;将附加段寄存器指向的段值赋给数据段寄存器
;显示字符串 ;返回DOS状态
实验结果:
通过Tddebug软件写好实验程序后,对程序进行编译连接,最终生成执行文件,在dos环境下启动后,进入Tddebug,对程序进行单步执行,可看到在每一步执行过程中,程序所分得的地址单元。连接试验箱后,通过对试验箱的操作,能够看到在dos环境下程序的执行步骤。
代码运行结果:显示:“HELLO,WORLD!”
心得体会:
通过本次试验,是我回顾了在学习单片机的时候使用的Tddebug集成开发软件使用方法,了解了汇编程序的开发过程。能够在Tddebug环境下进行编辑、编译、连接程序,掌握了INT 21H软件中断的调用DOS内部子程序的方法。但对于DOS环境下的汇编程序的编辑、编译、连接使用还不是很熟悉,只能是Tddebug集成软件开发环境下熟悉的编译连接运行。
实验二
实验名称:
I/O程序设计
实验目的:
1.理解软中断的调用方法及中断过程。
2.掌握INT 21H软件中断来调用DOS系统I/O子程序的方法。 3.掌握将存储在内存单元中的数据在屏幕上显示的方法。 4.掌握从键盘输入信息到内存的方法。
实验内容:
1.将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。 2.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。 3.从键盘输入两个1位十进制数,计算二者之和,并将结果显示在屏幕上。 4.编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上
实验步骤:
1.画出实验流程图。
2.运行Tddebug软件,选择Edit菜单编写实验程序
3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 4.使用Rmrun菜单中的Run运行程序,观察运行结果。
5.使用Rmrun菜单中的Debug调试程序。单步执行指令,观察各寄存器及数据区的内容。 更改数据区中的数据,考察程序的正确性
实验代码:
DATA SEGMENT
MES DB 'Show a as hex:',0AH,0DH,'$' SD DB 'a' DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV DX,OFFSET MES;显示提示信息 MOV AH,09H INT 21H MOV SI,OFFSET SD MOV AL,DS:[SI]
AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL
CMP AL,0AH ;是否是A以上的数 JB C2 ADD AL,07H C2: ADD AL,30H
MOV DL,AL ;显示字符 MOV AH,02H INT 21H
MOV AL,DS:[SI]
AND AL,0FH ;取低4位 CMP AL,0AH JB C3
图2-1 一个字节数以十六进制数形式显示处理流
ADD AL,07H C3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H
MOV AH,4CH INT 21H CODE ENDS END START
;显示字符
;返回DOS
实验结果:
代码运行结果:显示“61H” 心得体会:
本次实验要求我们将指定数据区的一个数据转换为其十六进制数,通过这次实验,我充分理解了什么是软中断,以及软中断的调用方法和中断过程,并了解了INT 21H软中断来调用DOS系统I/O子程序的方法,并知道如何将存储在内存单元中的素具显示在屏幕上。在老师的讲解过程中,我对试验提供的参考代码有了更深的了解,明白了如何进行调用软中断。
正在阅读:
汇编语言程序设计实验报告10-02
高一下学期期中考试地理试题含答案03-24
第一次卖报纸作文800字07-16
我们班的“小书虫”作文450字07-09
2018-2019年宜兴市徐舍小学一年级上册数学模拟练习题无答案03-01
电大国家开放大学《操作系统(本)》2019-2020期末试题及答案 -04-19
电力行业基础知识试题(含答案)09-06
赤峰市旅游发展总体规划03-17
一年级数学教学案例分析01-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 汇编语言
- 程序设计
- 实验
- 报告
- 数字电路实验指导书(12年4月打印)
- 平新乔《微观经济学十八讲》课后习题详解(第8讲 完全竞争与垄断)
- 英文版工程量清单(东非)P19-22
- 《歌罗西书》注释正文 第三章
- 职业病危害事故应急救援预案
- 碱基互补配对原则及其推论图示和应用
- NC6.1 - 单据快速开发手册
- 资产评估课件整理 东农
- 最高法院:史上最强建设工程价款优先受偿权纠纷裁判规则集成
- 高三地理周末测试题
- 10kV固体全绝缘管母线技术规范书
- SATWE设置参数的意义 101108 - 图文
- 中考物理复习提纲
- 保健食品申报 常见问题与解答 2012个人整理版
- 天然气分布式能源项目建设探讨
- 焊接工艺卡,作业指导书(最新)
- 串级三冲量给水控制系统动态仿真
- 电气02-1,2,3微机原理授课计划
- 建筑技术标
- 2014年英语六年级上期末专题训练三(问答配对)