昆明理工大学汇编语言上机报告_汇编和微机接口实验一.docVIP

昆明理工大学汇编语言上机报告_汇编和微机接口实验一.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
昆明理工大学汇编语言上机报告_汇编和微机接口实验一

昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 —2013 学年 第 一 学期 ) 课程名称:汇编与微机接口实验 开课实验室:信自楼444 2012 年 10 月 18 日 年级 计科 学号 2010 姓名 善良的学长 成绩 实验项目名称 实验一 按照材料编程 指导教师 李英娜 教师评语 教师签名: 年 月 日 一、实验目的: 熟悉并掌握80X86机器内存的分配和组成; 熟悉DEBUG调试环境,熟悉常用命令; 利用汇编编写简单的程序,通过显存显示相应的字符串。 二、实验要求: 1.阅读教材175页实验9中给出的材料,理解显存的相关知识; 2. 程序一:编写程序(要求按分段方式编程)实现在显示器上显示一段字符串,同一字符串请在屏幕上显示3行,每行显示的颜色不一样如:(字符串、格式自定) HELLO ! WELCOM HELLO ! WELCOM HELLO ! WELCOM 3. 程序二:编写程序计算1~100的和,结果也在屏幕上显示(可以按十六进制数显示)。 三、实验环境 汇编程序:MASM 6.15,链接程序:LINK.EXE,调试环境:DEBUG.EXE,对操作系统和计算机五特殊要求,如果是WIN7以上操作系统,需要安装DOSBOX虚拟平台。 四、实验内容(算法及运行结果的截图) 程序一: assume cs:code,ds:data,ss:stack data segment db welcome to masm! ;定义要显示的字符串(共16字节) db 02h,24h,71h ;定义三种颜色属性 data ends stack segment dw 8 dup(0) stack ends code segment start: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,10h mov bx,0 mov di,0 mov ax,0b872h ;算出屏幕第12行中间的显存的段起始位置放入ax中 mov cx,3 ;外循环为3次,因为要显示三个字符串 s3: push cx ;三个进栈操作为外循环s3保存相关寄存器的值 push ax ;以防止它们的值在内循环中被破坏 push di mov es,ax ;此时es为屏幕第12行中间的显存的段起始位置 mov si,0 mov di,0 mov cx,10h ;内循环为10h次,因为一个字符串中含10h个字节 s1: mov al,ds:[bx+si] mov es:[bx+di],al inc si add di,2 loop s1 ;此循环实现偶地址中存放字符 mov si,1 ;si的值设为1,从而为在显存奇地址中存放字符的颜色属性做准备 pop di ;将di的值恢复成进入内循环之前的时候的值 mov al,ds:10h[bx+di] ;取颜色属性[源OP寻址方式:相对基址变址] mov cx,10h ;第二个内循环也为10h次 s2: mov es:[bx+si],al add si,2 loop s2 ;此循环实现奇地址中存放字符的颜色属性 ;以下4句为下一趟外循环做准备 inc di pop ax add ax,0ah ;将显存的段起始地址设为当前行的下一行 ;[在段地址中加0ah,相当于在偏移地址中加了0a0h(=160d)] pop cx loop s3 mov ax,4c00h int 21h code ends end start 截图: 程序二: DATA SEGMENT SUM DW ? DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA , SS:STACK START : MOV AX , DATA A MOV DS , AX MOV AX , 0 MOV CX ,100 LOP1 : ADD AX , CX LOOP LOP1 MOV SUM , AX MOV AH , 4CH INT 21H CODE ENDS END START 截图: 六、实验总结(程序的优缺点,不足和改进的过程) 通过本次实验,我对汇编语言的了解更加深入了一步,并掌握了一定的编程技巧,对Debug的一些那些命令有了深刻的认识,也能运用自如。在实验刚开始的时候,我们对软件运

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档