第2章数据定义与传送107

第2章数据定义与传送107

ID:43738613

大小:303.50 KB

页数:91页

时间:2019-10-13

第2章数据定义与传送107_第1页
第2章数据定义与传送107_第2页
第2章数据定义与传送107_第3页
第2章数据定义与传送107_第4页
第2章数据定义与传送107_第5页
资源描述:

《第2章数据定义与传送107》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、新编汇编语言程序设计1第二章数据定义与传送2.1数据的定义2.2数据的传送2.3汇编语言上机操作习题二22.1数据的定义2.1.1数据段2.1.2数据定义3汇编语言程序定义的“数据”:(1)变量(Varible)有一个名字,运行过程中值可能发生变化,可以有 “初始值”。(2)常数(Constant)常数可以直接写在指令内,也可以存放在数据段内。(3)缓冲区(Buffer)从输入设备输入若干数据时,在数据段里事先留出必要 的存储单元,称为“输入缓冲区”。输出一批数据时,把输出内容事先存放在若干内存单元 中,称为“

2、输出缓冲区”。42.1.1数据段DATASEGMENT;在这里定义数据;;……DATAENDSDATA:程序员给这个段起的名字。SEGMENT:保留字,说明一个段从这里开始。ENDS:保留字,说明一个段到此结束。;分号后面的文字是“注释”,不参加汇编伪指令:说明性的语句语句”:由一行文字构成,是一条指令,或者定义 一组数据,或者是一 条“伪指令”。52.1.2数据定义数据定义伪指令:[变量名]数据定义伪操作数据[,数据]……数据定义伪操作:DB(DefineByte):每个数据占用一个字节(8b)DW(Defi

3、neWord):每个数据占用一个字(16b)DD(DefineDoubleWord):每个数据占用一个双字(32b)DQ(DefineQuartWord):每个数据占用8个字节(64b)DT(DefineTenWord):每个数据占用10个字节(80b)6DATASEGMENTXdb-1,255,‘A’,3+2,?db“ABC”,0FFH,11001010BYdb3dup(?)DATAENDS数据定义举例(1):有符号数用它的补码存储字符用ASCII代码存储db定义的数据在[-128~255]之内变量名代表这个

4、单元的地址?表示一个尚未确定的值DUP表示重复定义7DSEGSEGMENTZDW-2,-32768,65535,‘AB’WDD12345678H,-400000DWZ,W-ZDSEGENDS数据定义举例(2):DW定义的数据在(-32768,65535)内出现在数据部分的变量名代表这个变量的偏移地址多字节数据的高位存放在较高地址单元中8变量X,Y,Z,W的属性变量名段属性SEG偏移地址OFFSET类型TYPE长度LENGTH大小SIZEXDATA0000H111YDATA000AH133ZDSEG0000H21

5、2WDSEG0008H21292.2数据的传送2.2.1指令格式2.2.2程序段2.2.3基本传送指令2.2.4其他传送指令2.2.5堆栈2.2.6操作数表达式10汇编语言程序由若干“语句”组成,每个“语句”占用一行。三种类型语句:指令语句:包含一条符号指令,与一条机器指令相对应, 汇编以后成为这条机器指令的二进制代码,这 个代码被称为“目标(Object)”;伪指令语句:一条说明性的语句。有的伪指令语句汇编后 没有“结果”,有的伪指令汇编后产生“目标”。注释行:书写说明性文字,不进行“汇编”,也不产生“ 目标

6、”。111.80X86指令格式[标号:]程序员给这一行起的名字,后面跟上冒号,代表这一行的地址。标号用字母开始,不要使用保留字作为标号。操作码是这条指令需要完成的操作,用指令助记符表示。[操作数]是指令的操作对象,指令的操作数可以0~3个。两个操作数时,右面的操作数称为“源操作数”,左面的操作数称为“目的操作数”。“源操作数”参与指令操作,不保存结果,内容不会改变。“目的操作数”参与指令操作,还保存指令的操作结果,指令执行后,目的操作数的内容被改变。[;注释]用来添加一些说明,例如说明本行指令的功能。[标号:]

7、操作码[操作数][;注释]122.操作数寄存器操作数:包括段寄存器,通用数据、地址寄存器。例如:MOVBX,AX功能:AX寄存器内容送入BX寄存器。AX是“源操作数”,写在右边,指令执行后,它的内容不会被改变。BX是“目的操作数”,写在左边,指令执行后,它的内容将被改变。注意:寄存器IP/EIP和FLAGS/EFLAGS不能作为操作数出 现在指令中。13立即数操作数:二进制/十进制/十六进制常数,可求值的表 达式,字符,标号等都可以用作操作数。假设已经定义:XDW150指令“MOVBX,X*2”是错误的,“变量

8、”的计算应该在用户程序执行时进行,“汇编程序”不能对“变量”进行计算。常数300送入BX寄存器MOVBX,300或者:MOVBX,150*2DATA段的段基址送DSMOVAX,DATAMOVDS,AX注意:立即数不能用作“目的操作数”。14为了对存储器的一个单元进行访问,需要给出这个单元的段基址和偏移地址。大多数情况下,指令使用DS寄存器的内容作为操作数的段基址,指令中不需要再指出段基

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。