没有合适的资源?快使用搜索试试~ 我知道了~
太原理工大学微机原理实验报告.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 169 浏览量
2022-11-29
14:08:14
上传
评论
收藏 636KB DOCX 举报
温馨提示
试读
21页
...
资源推荐
资源详情
资源评论
本科实验报告
. . . .
实验一 汇编语言程序开发环境与程序调试
一、实验要求和目的
1.熟悉在微机上编辑、汇编、连接、调试和运行汇编语言程序的过程,掌握 PC 环境
下命令行方式的特点。
2.熟悉汇编过程中一些常见出错信息。
3.熟悉程序调试的方法, DOS 命令窗口的 debug 的常用命令。
二、实验容
1、项目要求:在屏幕上显示字符串‘Hello,world!’。
2、程序设计思想:
运用 DOS 系统功能调用(INT 21H)的 9 号功能。DOS 系统功能调用的 9 号功能是显示
字符串,它调用的参数 DS:DX=串地址,且字符串以“$”完毕。程序流程图如图 1-1:
程序开始
段的初始化
设置显示字符串的段地址
设置字符串的偏移地址
DOS 系统功能调用
返回 DOS
程序完毕
图 1-1 程序流程图
3、程序清单:
完整指令代码如下(简化段定义格式):
.model small
; 定 义 程 序 的 存 储 模 式
2 / 21
; 说 明 使 用 的 80x86 微 处 理 器 指 令
; 定 义 堆 栈 段
三、结果与分析
3 / 21
一、实验要求与目的:
1、实验要求:编写程序实现把数据段的字符串数据移动到附加段中。
二、实验容:
方案一(无聊版):
采用的是 loop 指令,CX 为循环次数,当 CX 为 0 时退出循环。
加入了换行指令。
程序如下:
DSEG SEGMENT
dstring DB 'HELLO,WORLD!',33,33, '$'
;15 个字节 HELLO,WORLD!!!
dstring_1 db ' 数据段的字符串:' , '$' ;一定要加'$',表示一个字符串的完毕
4 / 21
. . . .
dstring_2 db ' 附加段的字符串:' , '$' ;在屏幕上显示的字符串
DSEG ENDS
ESEG SEGMENT
sstring DB 15 DUP(?)
;附加段预留 15 个字节空间
ESEG ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DSEG, ES:ESEG
start: MOV AX, DSEG ;程序开始执行的地方
MOV DS, AX ;将 DSEG 的段地址给 ds
MOV AX, ESEG
MOV ES, AX ;将 SSEG 的段地址给 es
LEA SI, dstring ;将 dstring 的首地址给 si
LEA DI, sstring ;将 sstring 的首地址给 di
MOV CX, 15
S:
;CX 存放 loop 指令的循环次数
MOV AL, [SI]
MOV ES:[DI], AL
INC DI
INC SI
LOOP S
mov dX,offset dstring_1
MOV AH,09h
INT 21H
;输出字符串‘数据段的字符串:’
;输出换行
MOV DL,0AH
MOV AH,02H
INT 21H
mov dX,offset dstring
MOV AH,09h
INT 21H
;输出字符串:HELLO,WORLD!!!
MOV DL,0AH
MOV AH,02H
INT 21H
;输出换行
mov dX,offset dstring_2
MOV AH,09h
INT 21H
;输出字符串 dstring_2
MOV DL,0AH
MOV AH,02H
INT 21H
;输出换行
mov al,'$'
mov es:[di-3],al ;将第二个'!'改成'$'以终止字符串的继续输出
MOV AX,ES
MOV DS,AX ;将附加段的段地址附给数据段
mov dX,offset sstring
MOV AH,09h
INT 21H
;显示字符串 HELLO,WORLD!注意不是!!!
5 / 21
剩余20页未读,继续阅读
资源评论
若♡
- 粉丝: 6174
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功