汇编语言第4章汇编语言程序格式.ppt

上传人:牧羊曲112 文档编号:5993791 上传时间:2023-09-12 格式:PPT 页数:25 大小:258.63KB
返回 下载 相关 举报
汇编语言第4章汇编语言程序格式.ppt_第1页
第1页 / 共25页
汇编语言第4章汇编语言程序格式.ppt_第2页
第2页 / 共25页
汇编语言第4章汇编语言程序格式.ppt_第3页
第3页 / 共25页
汇编语言第4章汇编语言程序格式.ppt_第4页
第4页 / 共25页
汇编语言第4章汇编语言程序格式.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《汇编语言第4章汇编语言程序格式.ppt》由会员分享,可在线阅读,更多相关《汇编语言第4章汇编语言程序格式.ppt(25页珍藏版)》请在三一办公上搜索。

1、IBM-PC汇编语言程序设计,第4章 汇编语言程序格式,4.1 汇编程序功能,编辑TC产生.ASM文件,宏汇编MASM产生.OBJ文件,连接LINK产生.EXE,调试DEBUG.EXE,DOS下运行.EXE,错,错,错,4.2 伪指令,一、处理器选择伪操作 二、段定义格式:段名 SEGMENT 定位类型 组合类型 类别 段名 ENDS,1.定位类型(align _type):告诉连接程序,前段放完后,后一段将从什么起始地址边界存放。PAGE(页):表示此段物理地址起始地址后8位为0 即 0000 0000PARA(节):表示此段物理地址起始地址后4位为0 即 0000DWORD(字):表示此段

2、必须从双字的边界开始 即 00WORD(字):表示此段必须从字的边界开始 即 0BYTE(字节):表示此段可以从任何地址开始 即*省略定位类型,即为PARA,2.组合类型(combine _type):告诉连接程序,本段与其它段的关系。PRIVATE:本段与其它段在逻辑上不发生关系,每段有自 己的基地址:隐含的组合类型。PUBLIC:把本段与同名同类的其它段相邻地连在一 起,给定一个共同段基地址,大小不超过64K。STACK:把本段与同名同类的其它段相邻地连在一 起,指定该段在运行时为堆栈的一部分。无间 隙。COMMON:连接程序为本段与其它同名同类段指定相同 的基地址,产生覆盖存贮。AT 表

3、达式:连接程序把本段装在表达式的值所指定的段地 址上,它不能指定代码段。MEMORY:连接程序将把本段定位在被连接一起的其它所 有段之上。,3.类别(“class”):为单引号括起来的字符串,一般为:CODE,DATA,EXTRA,STACK功能:按类别名相同的段(段名不一定相同)组织 起来存放在连接的存贮区中。,例:,模块1,:A SEGMENT PARA PUBLIC S A1 DB 55H DUP(0)A ENDSB SEGMENT PARA COMMON S1 B1 DB 202H DUP(0)B ENDS,模块2,:A SEGMENT PARA PUBLIC S A2 DB 103H

4、 DUP(0FFH)A ENDSB SEGMENT PARA COMMON S1 B2 DB 104H DUP(0)B ENDS,0000H:0000H 00:0000H:0054H 00 空11个字 节单元0000H:0060H 0FFH:0000H:0162H 0FFH 空13个字 节单元0017H:0000H 00:0017H:0201H 00:,A段,B段,B1和B2公共存贮区(覆盖存放),例:,模块1,:A SEGMENT PARA S A1 DB 55H DUP(0)A ENDSB SEGMENT PARA COMMON S1 B1 DB 202H DUP(0)B ENDS,模块2

5、,:C SEGMENT PARA S A2 DB 103H DUP(0FFH)C ENDSB SEGMENT PARA COMMON S1 B2 DB 104H DUP(0)B ENDS,0000H:0000H 00:0000H:0054H 00 空11个字 节单元0006H:0000H 0FFH:0006H:0102H 0FFH 空13个字 节单元0017H:0000H 00:0017H:0201H 00:,A段,B段,B1和B2公共存贮区(覆盖存放),C段,三、程序的开始和结束。四、数据定义五、赋值伪操作EQU和=1.等价伪指令 格式:符号名 EQU exp 用途:给符号名定义一个值、别的

6、符号名、一条可执行命 令等。例如:PORT EQU 256 BUF EQU PORT+22.等号伪指令 格式:符号名exp 如:EMP=6 EMP=9*等号伪指令可以给已定义符号名重新定义值,而等价伪指令不能对符号名重新定义值。*不为已定义的符号名分配存贮单元。,六、地址计数器与对准为操作1.地址计数器伪指令:$例:JZ$+8 VAR DW 1,2,$+7,3,$+42.ORG伪指令格式:ORG 数值表达式3.EVEN 偶地址4.Align 格式:Align 2n七、基数控制伪操作 RADIX EXP,VAR 0054H 01 0055H 00 0056H 02 0057H 00 0058H

7、5F 0059H 00 005AH 03 005BH 00 005CH 60 005DH 00,设某数据段:DATA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H DA1 DB COMPUTER DB 0AH,0DH COUNT EQU$-DA1 DA2 DW CO,MP,UT,ERDATA ENDS试回答:(1)DA1的偏移地址是()(2)COUNT的值是()(3)DA2+5字节单元的内容是(),4.3 汇编语言程序格式,格式:名字项 操作项 操作数,操作数;注释一、名字项(name)1.标号:机器指令语句存放地址的符号表示,也可表示过程名。用于转移指令和CALL

8、语句的操作数项。标号有三种属性:段属性:指定义该标号所在段的段首址。偏移地址属性:它表示段起始地址到定义符号的位置之间的字节数。类型属性:制定符号在本段使用,还是在其它段中使用:NEAR:本段使用 FAR:段外使用,2.变量:数据存放地址的符号表示 变量有三种属性:段属性:变量所在段的段首址 偏移地址属性:段首址到变量处的字节个数 类型属性:字节或字等类型,由类型定义伪指令定义。DB:字节类型1个字节 DW:字类型2个字节 DD:双字节类型4个字节 DQ:四字类型8个字节 DT:十字节类型1个数据占10个字节,二、操作项(operation)三、操作数项(operand)组成:常数、寄存器、标

9、号、变量或表达式表达式:由常数、变量、标号通过操作运算符连接而成的。1.算术运算符(arithmetic operator):,/,MOD用于:数据和地址表达式 例:var1 dd 1,7,8,6,9 var2 dw?mov ax,var1+(5-1)*4 mov cx,(var2-var1)/4,2.移位和逻辑操作符移位运算符:SHR(右移),SHL(左移)逻辑运算符:AND(与),OR(或),XOR(异或),NOT(非)用于:数值和地址表达式中。例:AND DX,789AH AND 0FH(立即数)MOV AL,A SHR 3(立即数)若A=11111111B,则:表达式:A SHR 3,

10、结果为00011111B AL,3.关系运算符(conditional operator):EQ,NE,LT,GT,LE,GE结果:真值为0FFFFH(全“1”),假值为0(全“0”)用于:数值和地址表达式中。例:MOV BX,3 LT 5;(BX)=0FFFFH MOV BX,(PORT LT 5)AND 20)OR(PORT GE 5)AND 30)即 PORT5,MOV BX,20 PORT5,MOV BX,30,4.数值回送(value _returning operator)(1)TYPE格式:TYPE 变量或标号功能:若是变量,回送该变量以字节数表示的类型DB为1,DW为2,DD为

11、4,DQ为8,DT为10。若是标号,回送代表该标号类型的数值NEAR为0FFFFH(-1),FAR为0FFFEH(-2)。例:VAR1 DW 1,2 MOV AX,TYPE VAR1,2,(2)LENGTH:取存贮单元个数算符格式:LENGTH 变量(3)SIZE:取存贮区大小算符 格式:SIZE 变量SIZE=LENGTH*TYPE(4)SEG:取段首址算符格式:SEG 变量或标号(5)OFFSET:取偏移地址算符格式:OFFSET 变量或标号,例:DAT SEGMENT A DW 50,100,70H B DB ABCDEF,5 DUP(0)C DW B D DD 50 DUP(?)DAT

12、 ENDS:MOV AX,SEG B;DATAX MOV BX,OFFSET B;6 BX MOV CX,TYPE B;1 CX MOV AX,A+2;(A+2)=100 AX,MOV DX,LENGTH D;50 DX MOV SI,SIZE D;200 SI:,例:MOV SI,OFFSET VAR LEA DI,VAR MOV BX,DI LEA BX,DI MOV BX,OFFSET DI,(错),5.属性操作符(attribute operator)(1)PTR格式:类型 PTR 地址表达式其中:类型为 BYTE 字节 WORD 字 DWORD 双字 NEAR 段内 FAR 段,(2

13、)THIS格式:THIS 类型类型同PTR改变类型的方法:LABEL格式:名字 LABEL 类型 LABEL通常要与指令语句或用DB、DW、DD伪指令的数据定义语句连用。例:BYTE_VAR LABEL BYTE WORD_VAR DW 1,2,3,4PTR与EQU例:VAR DW 1234H BYTE_VAR EQU BYTE PRT VAR WORD_VAR EQU BYTE PTR VAR+1,PTR例:MOV AL,BYTE PTR VAR THIS与EQU例:BYTE_ table EQU THIS BYTE WORD_table DW 1,2,3,4(3)段操作符(4)short(5)字节分离运算符:HIGH和LOW格式:HIGH 常量或地址表达式 LOW 常量或地址表达式功能:HIGH 用来分离出16位常量或地址表达式的偏移量的高字节;LOW用来分离出16位常量或地址表达式偏移量的低字节。,6.算符优先级:括号(圆括号,方括号,尖括号),SIZE,LENGTH:PTR OFFSET,SEG,TYPE,THIS HIGH,LOW*,/,MOD,SHL,SHR+,-EQ,NE,LT,LE,GT,GE NOT AND OR,XOR SHORT,高低,四、注释项本章小结:重点掌握汇编语言的伪指令;汇编语言的格式,以及表达式的灵活应用。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号