- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                8086汇编语言上机调试 实验报告
                    一、实验目的
(1)掌握常用DEBUG命令: G,D,R,T,U,Q。
(2)掌握工具软件EMU8086。
(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
图1  汇编语言程序的建立及汇编过程
  2.1.2、汇编语言程序上机过程
  1)、用编辑程序(如EDIT.EXE)建立ASM源文件;
  2)、用汇编程序(如MASM.EXE)把ASM文件转汇编成OBJ文件;
  3)、用连接程序(如LINK.EXE)把OBJ文件转连接成EXE文件;
  4)、用调试程序(如DEBUG.COM)来调试和执行
  5)、 生成EXE或COM文件
2.2 、汇编语言程序格式
存储器的物理地址由段基址和偏移地址组合而成,任何一个逻辑段,无论是代码段,数据段,堆栈段,附加段都必须进行段定义,以便连接程序把不同段和模块连接成一个可执行程序。此外,还必须明确段和段寄存器之间的关系,这可使用段分配语句来完成。
  
  2.2.1、段定义语句
    四个逻辑段不一定全部要定义,通常代码段和数据段是必须的,附加段可以省略。但当代码段中使用了串指令,必须设置附加段作目标串基址用,附加段也可用来存放数据,增大数据段容量。
  (1)代码段:存放程序执行的指令
  (2)数据段:存放程序所需的数据
  (3)堆栈段:存放程序执行的临时信息
数据段定义格式:
DATA   SEGMENT             ;  数据段
RESULT_1  DB  1 
RESULT_2  DB  1 
RESULT_3  DB  1 
DATA   ENDS 
附加段的定义:
EXTRA  SEGMENT  
   DEST_BUFFER  DB  50  DUP (‘?’)
EXTRA  ENDS
堆栈段的定义:
STACK  SEGMENT STACK       ;   堆栈段 
STA         DB    64 DUP(0)
STACK_TOP   DB    0
STACK  ENDS 
  2.2.2、段分配语句
在8086/8088系统中存储器采用分段结构,各段容量≦64K字节,用户可以设置多个逻辑段,但只允许4个逻辑段同时有效,段分配语句用来完成将逻辑段分别定义成代码段、数据段、堆栈段和附加段。
由于ASSUME伪指令只指定某个段分配给哪个段寄存器,并将代码段的段基址自动装入CS寄存器中,而不能自动把其它段基址装入相应的段寄存器中,所以在代码段的开始要有一段初始化程序完成这一工作。对堆栈段来说除了将段基址送入SS寄存器外,还要将栈顶偏移地址置入堆栈指示器SP中。
ASSUME CS:段名, DS:段名,  ES:段名, SS:段名
2.3、将000H-3E7H范围内的二进制数转换成BCD码
  2.3.1、程序框图:
  2.3.2、参考程序:	
将 AX中的三位数拆为三个BCD码, 并存入 Result 开始的三个单元
DATA   SEGMENT             ;  数据段
RESULT_1  DB  1 
RESULT_2  DB  1 
RESULT_3  DB  1 
DATA   ENDS
STACK  SEGMENT STACK       ;   堆栈段 
STA         DB    64 DUP(0)
STACK_TOP   DB    0
STACK  ENDS
CODE   SEGMENT             ;   代码段
       ASSUME CS:CODE , DS:DATA ,  ES:DATA , SS:STACK   
START:  
        MOV    AX, DATA
        MOV    DS, AX         ;   设置数据段
        MOV    AX, STACK
        MOV    SS, AX         ;   设置堆栈段
        LEA     SP, STACK_TOP  ;   设置栈顶指针
        MOV    AX, 2afH                                 
        MOV    CL, 100                                 
        DIV     CL                                      
        MOV    RESULT_1, AL     ; 除以 100, 得百位数     
        MOV    AL, AH                                  
        MOV    AH, 0     
                您可能关注的文档
最近下载
- 第一单元+写话:注意说话的语气(教学课件)-2023-2024学年二年级语文下册单元写话能力提升(统编版).pptx VIP
 - 心理健康与心理健康观.ppt VIP
 - 关爱保护未成年人.pptx VIP
 - 实践党创新理论“三个境界”.doc VIP
 - 企业危险化学品及危险化工工艺安全管理规定.docx VIP
 - 数电模电完整版练习试题附答案.doc
 - 企业设备、建(构)筑物拆除活动污染防治技术指南.pdf VIP
 - 2020 电工装备供应商数据采集及接口规范第1部分通用部分.docx VIP
 - 《画出你的想象》教学设计4-10画出你的想象-二年级上册美术.docx VIP
 - 心理卫生 mental health.ppt VIP
 
原创力文档
                        

文档评论(0)