ch4-1汇编语言程序设计(伪指令).pptxVIP

  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机器语言与汇编语言;例:将4位二进制数转换为ASCII码字符。当数在0000B-1001B时,对应的ASCII码为‘0’~‘9’;当数在1010B~1111B时,对应的ASCII码为‘A’~‘F’。设待转换的数据已在累加器AL中(低4位)。;地址

;2.汇编语言与高级语言;程序短小,节省内存;

执行速度快;

用户可直接对硬件实施控制。

故实时性要求很高的程序多采用汇编语言程序。;汇编语言源程序

;输入汇编语言源程序源文件.ASM

汇编(编译)目标文件.OBJ

链接可执行文件.EXE

调试最终程序

;4.1汇编语言程序;汇编语言源程序通常由一个或几个程序模块组成,每个模块一般由四个逻辑段组成:;数据段名SEGMENT

数据段名ENDS

附加段名SEGMENT

附加段名ENDS

;13;14;;指令性语句

指示性语句;指令性语句:

[标号:][前缀]助记符[操作数],[操作数][;注释];指示性语句:;;三个属性:

段地址:即标号所在段的段地址;

偏移量:标号所代表存储单元的段内偏移地址;

类型:NEAR或FAR:

NEAR—表示标号所在语句与转移指令/调用指令在同一码段内,跳转时只需改变IP即可。

FAR—标号所在语句与转移指令/调用指令不在同一代码段内。

若没有对类型进行说明,默认为NEAR。

标号作为转移指令或CALL指令的转移地址。;指令码命令CPU要完成的操作

伪指令助记符;用分号作为注释的开始

用于说明程序或语句的功能,以便于阅读和理解

注意:

要写本指令在程序中的作用,而不要写指令的操作。

例如:以下为同一条指令写的注释

1)MOVCX,100;100送CX

2)MOVCX,100;给计数器送初值

显然,第二种写法要比第一种写法要好。;常量

变量或标号

表达式

寄存器

存储器单元;常量

变量或标号

表达式

寄存器

存储器单元;常量:;变量:;常量

变量或标号

表达式

寄存器

存储器单元;汇编语言的一个实例:hello.asm

dataSEGMENT

HelloDB‘Hello,world!’,0DH,0AH,’$’

dataENDS

progSEGMENT

ASSUMECS:prog,DS:data

start:MOVAX,data

MOVDS,AX

LEADX,hello

MOVAH,9

INT21H

MOVAH,4CH

INT21H

progENDS

ENDstart;常量

变量或标号

表达式

寄存器

存储器单元;表达式:;;;;例如:

MOVAX,SEGDATA

MOVDS,AX

MOVBX,OFFSETDATA

LEABX,DATA;;

;4.2伪指令;由汇编程序执行的“指令系统”

用于定义变量、分配存储区、定义逻辑段、指示程序开始和结束等

在汇编时被解释执行,不产生任何目标代码

;数据定义伪指令

符号定义伪指令

段定义伪指令

过程定义伪指令

宏命令伪指令

结束伪指令;(1)段属性即变量所使用的段;;2.变量定义及存储器申请伪指令DB/DW/DD;注:在存放字变量时,低字节在前,高字节在后。;ASCDB2DUP(?)

功能:分配2个字节单元,初值任意

BUFDW100DUP(0)

功能:分配100个字单元,初值为0

ZIPDB3DUP(0,2DUP(1))

功能:存储单元依次初始化为:0,1,1,0,1,1,0,1,1。;变量经过定义及存储器申请之后,在程序中即可像高级语言一样使用。;定义字符串必须用DB伪指令,

例:

DATA1DB‘ABCD’,66H

;说明:

1)操作数从变量名地址开始按字节连续存放;重复操作符;例:;注意:;1.EQU伪指令;?“=”伪操作与EQU相似,其区别是前者可重复定义而后者不能。二者均不占用存储空间,仅是给符号赋值

;例:CONSTEQU

文档评论(0)

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

喜欢分享的作者

1亿VIP精品文档

相关文档