微机原理第12次8系08.pptVIP

  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文档。上传文档
查看更多
微机原理第12次8系08

第4章 汇编语言程序设计 汇编语言程序结构 汇编语言程序设计方法 子程序设计技术 上机步骤与调试方法 作为主模块,下面几个部分是不可少的。 ① 必须用ASSUME伪指令告诉汇编程序,哪一个段和哪一个段寄存器相对应,即某一段地址应放入哪一个段寄存器。 ② DOS的装入程序在装入执行时,将把CS初始化为正确的代码段地址,把SS初始化为正确的堆栈段地址,因此在源程序中不需要再对他们进行初始化。 ③在DOS环境下,通常采用DOS的4CH号中断功能调用使汇编语言返回DOS,即采用如下两条指令: MOV AH,4CH INT 21H 第4章 汇编语言程序设计 汇编语言程序结构 汇编语言程序设计方法 子程序设计技术 上机步骤与调试方法 4.2 程序设计的基本方法 1.顺序程序 CPU执行顺序程序时,是以指令的排列顺序逐条执行的。 2.分枝程序 分枝程序的基本结构: MOV DX,03F0H IN AL,DX CMP AL,90 JNC NEXT1 MOV AL,0FFH JMP NEXT2 NEXT1: MOV AL,00H NEXT2: MOV DX,03F7H OUT DX,AL HLT 例:在DS数据段偏移地址为DATA开始的顺序80个单元中,存放着某班80个同学的微型机原理考试成绩。现欲编程序统计高于90分、89分~70分,69分~60分和低于60分的人数,并将统计的结果放在当前数据段偏移地址为BUFFER的顺序单元中。 MOV AX,4000H MOV DS,AX MOV SI,0000H MOV CX,30 XOR AX,AX GOON:ADD AL,[SI] ADC AH,00H INC SI DEC CX JNZ GOON MOV DX,AX HLT * 第4章 汇编语言 程序设计 4.1 汇编语言源程序的结构   1. 完整段定义的程序结构   一个完整的汇编源程序一般应由3个段,即代码段、数据段和堆栈段组成。 代码段:包括了程序要执行的所有指令。 堆栈段:用来在内存中建立一个堆栈区,以便在中断、调用子程序时使用。堆栈段一般可以从几十个字节至几千字节。如果太小,则可能导致程序执行中的堆栈溢出错误。 数据段:用来在内存中建立一个适当容量的工作区,以存放常数、变量等程序需要对其进行操作的数据。 2. 一个标准的程序结构: STACK SEGMENT PARA STACK ′STACK′ DB 500 DUP(0) STACK ENDS DATA SEGMENT … … DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX, DATA MOV DS, AX MOV ES, AX … … MOV AH, 4CH INT 21H; CODE ENDS END START 操作系统的装入程序在装入执行时, 代码段地址→CS,堆栈段地址→SS, DS留作它用(这是为了保证数据段地址的正确性)。 在DOS环境下,调用DOS的4CH号中断功能——返回DOS。如果不是主模块则不需要。 必须用ASSUME伪指令告诉汇编程序,哪一个段和段寄存器相对应。这样在对源程序模块进行汇编时,才能确定段中各项的偏移量。 A B 例:若M、N、W分别为三个8位无符号数,现欲求Q=M×N—W。若M、N、W存放在当前DS所决定数据段、偏移地址为DATA的顺序单元中,而且Q可放在AX中。 LEA SI,DATA MOV AL,[SI] MOV BL,[SI+1] MUL BL MOV BX,0 MOV BL,[SI+2] SUB AX,BX HLT 分枝程序的基本思路:

文档评论(0)

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

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

1亿VIP精品文档

相关文档