8086实验指导.docxVIP

  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文档。上传文档
查看更多
8086实验指导

8086实验1 设备使用及简单示例程序验证一.实验目的1 熟悉软件编程环境和硬件设备资源2 熟悉工程创建的步骤,其中各个文件作用3 掌握软件菜单的使用,掌握程序的调试基本步骤。二.实验内容以课本例4-1为源文件创建工程进行工程的调试,查看程序运行过程和结果三.实验仪器微机、WAVE6000编程环境,实验箱注意:文件不要用中文名称,保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。调试过程:2 查看存储器菜单使用:窗口---数据窗口---MEMORY,观察或者修改MEMORY内容。3 查看CPU寄存器:窗口---CPU窗口,CPU寄存器4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。ASSUME CS:CSEG , DS:DSEG , ES:ESEG SUM DW 2 DUP(?) DUP (duplicate) 含义如下:定义变量(数组)SUM,类型为字(DW),大小为2,内容不定(?) 编译器设置:编译器将用户定义的数据段分配在0400H(0040H×16)开始的存储器中。数据段段基址寄存器DS(0040H)。查看数据的方法:窗口---数据窗口--- MEMORY ---0400的位置就是你定义的数据段的数据:物理地址=段基址(DS)×16+段内偏移参考程序及流程图:见课本例4-18086实验2 简单程序设计--存储块移动一.实验目的1 熟悉86汇编语言程序结构2 熟悉循环结构程序的编写,进一步熟悉指令系统寻址方式3 熟悉编程环境和程序的调试二.实验内容将指定源地址和长度(100字节)的存储块移动到目的地址。三.实验仪器:微机、WAVE6000软件,实验箱注意:1 源数据块和目的数据块自己在数据段中定义。2 要查看移动后结果,定义时对源和目的块赋不同的值S db 25 dup(11h) 含义? dup (duplicate)定义数组S,大小为25,类型为字节(DB),全部赋值为11h3 同实验一,数据段分配在0400H开始的存储器中流程图如右:两种移动的方式:1利用循环结构编程移动方式2利用重复指令(movsb)编程方式参考程序利用重复指令(movsb)编程方式移动 256 字节data segmentSource db 256 dup(055h)Target db 256 dup(0aah)data endscode segmentassume cs:code, ds:data, es:datastart: mov ax, data mov ds, ax mov es, ax mov si, offset Source mov di, offset Target mov cx, 256 rep movsb jmp $code ends end start 8086实验3 存储块清零data segmentBlock db 256 dup(55h)data endscode segment assume cs:code, ds:datastart proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清 256 字节Again: mov [bx], byte ptr 0 inc bx Loop Again ; 记数减一 jmp $code ends end start8086实验4 二进制到BCD码转换自己定义存放结果的数据空间(段) 百位 十位 个位参考程序和框图如下:; 将 AX 拆为三个 BCD 码, 并存入 Result 开始的叁个单元 参考程序如下:data segmentResult db 3 dup(?) 定义长度为3个字节的Result 内容待定data endscode segment assume cs:code, ds:datastart:mov ax, datamov ds, ax ; 初始化DSmov ax, 123mov cl, 100div clmov Result, al ; 除以 100, 得百位数mov al, ahmov ah, 0mov cl, 10div clmov Result+1, al ; 余数除以 10, 得十位数mov Result+2, ah ; 余数

文档评论(0)

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

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

1亿VIP精品文档

相关文档