第三章汇编语言程序设计.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文档。上传文档
查看更多
第三章 汇编语言程序设计 1.汇编语言 2.汇编语言的语句 3. DOS功能调用 4.汇编语言程序的上机过程及调试 5 .汇编语言程序设计 1.汇编语言 通常,一个源程序都有大体相同的结构或框架,下面给出一个比较规范的汇编语言源程序该程序是在PC-DOS环境下运行的。 例: 两个四字节16进制数相加的汇编语言 源程序。 DATA SEGMENT PARA ;定义数据段 DATA1 DB 0E8H,50H,0BCH,74H ; 被加数 DATA2 DB 21H,22H,23H,24H ; 加数 DATA ?? ENDS ; 数据段结束 STACK SEGMENT PARA STACK;定义堆栈段 DW 20 DUP (0) ; 堆栈段位20个字节 STACK ?ENDS ; 堆栈段结束 CODE ?SEGMENT ;定义代码段 ???????????ASSUME CS:CODE,DS:DATA, SS:STACK ??START:? MOV AX,DATA ?????????? MOV DS,AX ;初始化DS ? MOV CX,4 ? MOV SI,0 ? CLC LOOPER: MOV AL, DATA2[SI] ;取1个字节加数 ADC DATA1[SI], AL INC SI JNZ LOOPER HLT CODE ???ENDS ;代码段结束 ?????????? ?END START ;源程序结束 2. 汇编语言的语句 指令性语句 指示性语句 一、汇编语言的语句格式: [名字] 操作码/伪操作 [操作数] [;注释] (一)、名字、标号、变量 标号的三种属性:段、偏移量和类型 变量的三种属性:段、偏移量和类型 (三)、语句中的操作数 1)、常数 2)、寄存器 3)、标号 4)、变量 5)、表达式 二、表达式中的运算符合操作符 (一)、算术运算符: +、-、*、/、MOD (二)、逻辑运算符: AND、OR、XOR、NOT(不要混同与指令) (三)、关系运算符: EQ(等于)、 NE(不等于)、LT(小于)、 GT(大于)、LE(小于或等于)、 GE(大于或 等于) 当关系式成立时(真),结果为0FFFFH 当关系式不成立时(假),结果为0 (四)、分析运算符和合成运算符: 1)、OFFSET 取标号或变量的偏移量 2)、SEG 取标号或变量的段值 3)、TYPE 得到一与存储器操作数类型有关的数值 4)、LENGTH 5)、SIZE 6)、PTR 7)、THIS 8)、SHORT (五)、其他运算符 1)、方括号 [ ] 2)、段超越 “:” 3)、HIGH和LOW (五)、运算符的优先级 2.伪指令 符号定义伪指令 数据定义伪指令 段定义伪指令 过程定义伪指令 定位定义伪指令 一、符号定义伪指令 用途: 给一个符号重命名,或定义新的类型 属性等。 1)EQU 等值伪指令 格式:名字 EQU 表达式 2)= 等号伪指令 格式:名字 = 表达式 二、数据定义伪指令 格式:[名字] 伪指令助记符 数据项表 1)DB 定义字节 2)DW 定义字 3)DD 定义双字 重复操作符 n DUP (初值) 三、段定义伪指令 1)SEGMENT/ENDS 格式:段名 SEGMENT[定位类型][组合类型][‘类别’] . . . 段名 ENDS 定位类型 ①PARA(默认) ②BYTE ③WORD ④ PAGE 例: STACK SEGMENT STACK ;定义STACK堆栈段,无定位类型 DW 30 DUP (?) ; 长度为30个字节 STACK ENDS ; STACK段结束 DATA1 SEGMENT BYTE ;定义DATA1段,定位类型BYTE STRING DB “This is an example!” ;长度为19个字节 DATA1 ENDS ; DATA1段结束 DATA2 SEGMENT WORD ;定义DATA2段,定位类型WORD BUFFER DW 40 DUP(0) ;长度为40字,80个字节 DATA2 ENDS ; DATA2段结束 CODE SEGMENT PAGE ;定义CODE代码段,定位类型PAGE … CODE ENDS ; CODE代码段结束 组合类型 ①NONE(默认) ②PUBLIC ③STACK ④ COMMON

文档评论(0)

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

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

1亿VIP精品文档

相关文档