《【教学课件】第四章汇编语言程序格式.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章汇编语言程序格式.ppt(17页珍藏版)》请在三一办公上搜索。
1、1,第四章 汇编语言程序格式,4.1 汇编程序功能,2,4.2 伪操作 伪操作是汇编程序对源程序进行汇编时处理的操作,完成数据定义、分配存储区、指示程序开始结束等功能。数据定义及存储器分配伪操作格式:变量 助记符 操作数,操作数,;注释 助记符:DB DW DD DQ DTDATA_WORD DW 100,100HDATA_BYTE DB 100 DUP(?)MESS1 DB ABMESS2 DW AB,3,例:OPER1 DB?,?OPER2 DW?,?MOV OPER1,0;字节指令 MOV OPER2,0;字指令例:OPER1 DB 1,2 OPER2 DW 1234H,5678H MO
2、V AX,OPER1+1 MOV AL,OPER2 类型不匹配 MOV AX,WORD PTR OPER1+1 MOV AL,BYTE PTR OPER2(AX)=3402H(AL)=34H,4,变量和标号:所有的变量和标号都有三种属性,段值(SEG)偏移量(OFFSET)类型(TYPE):变量(字节/字/双字/四字/十字节)标号(NEAR/FAR),例:BYTE_ARRAY LABEL BYTE WORD_ARRAY DW 50 DUP(?),5,表达式赋值伪操作EQU(不占存储单元)格式:表达式名 EQU 表达式 CONSTANT EQU 256 ALPHA EQU 7 BETA EQU
3、ALPHA-2“=”伪操作(允许重复定义)格式:变量=表达式 EMP=7 EMP=EMP+1,6,段定义伪操作格式:段名 SEGMENT 定位类型,组合类型,类别 段名 ENDS,例:定义用户堆栈 stack_seg segment dw 40H dup(?)tos label word stack_seg ends code_seg segment mov ax,stack_seg mov ss,ax mov sp,offset tos code_seg ends,STACK,40H,(SP),(SS),7,data_seg1 segmentdata_seg1 ends;定义数据段data_
4、seg2 segmentdata_seg2 ends;定义附加段code_seg segment assume cs:code_seg,ds:data_seg1,es:data_seg2start:mov ax,data_seg1 mov ds,ax mov ax,data_seg2 mov es,ax;段地址段寄存器 code_seg ends end start,例:,8,程序开始和结束伪操作格式:TITLE 程序名 END 程序首地址标号对准伪操作EVEN;使下一地址从偶地址开始A DB morningEVENB DW 2 DUP(?)ORG 常数表达式;使下一地址是常数表达式的值 OR
5、G 100HSTART:.,9,$地址计数器:保存当前正在汇编的指令的地址例:ORG$+8;跳过8个字节的存储区 JNE$+6;转向地址是JNE的首址+6例:$用在伪操作的参数字段表示地址计数器的当前值 ARRAY DW 1,2,$+4,3,4,$+4,10,基数控制伪操作格式:.RADIX 表达式(2,8,10,16);规定无标记数的基数,例:.RADIX 16 MOV BX,0FF MOV BX,178D,11,4.3 汇编语言程序格式 符号地址 操作 操作数;注释,变量 指令 寄存器 说明程序或语句 标号 伪指令 标号 的功能 宏指令 变量 常数 表达式,表达式:数字表达式 地址表达式,
6、12,表达式操作符(5类),(1)算术操作符:,mod 例:ADD AX,A+2;符号地址常数有意义;时意义不明确 MOV AX,BX+1;,(2)逻辑操作符:AND,OR,XOR,NOT 例:OPR1 EQU 25 OPR2 EQU 7 AND AX,OPR1 AND OPR2,13,(3)关系操作符:EQ,NE,LT,LE,GT,GE 计算结果为逻辑值:真 0FFFFH 假 0000H 例:MOV FID,(OFFSET Y-OFFSET X)LE 128,X:Y:,若128(假),汇编结果 MOV FID,-1,汇编结果 MOV FID,0,若128(真),14,(4)数值回送操作符:O
7、FFSET/SEG 变量(或标号)功能:回送变量或标号的偏址/段址 例:MOV BX,OFFSET X MOV DX,SEG X TYPE 变量(或标号)变量:DB DW DD DQ DT 标号:NEAR FAR 值:1 2 4 8 10-1-2 LENGTH 变量 功能:回送由DUP定义的变量的单元数,其它情况回送1 SIZE 变量 功能:LENGTH*TYPE,15,例:ARRAY DW 100 DUP(?)TABLE DB ABCD ADD SI,TYPE ARRAY;ADD SI,2 ADD SI,TYPE TABLE;ADD SI,1 MOV CX,LENGTH ARRAY;MOV
8、CX,100 MOV CX,LENGTH TABLE;MOV CX,1 MOV CX,SIZE ARRAY;MOV CX,200 MOV CX,SIZE TABLE;MOV CX,1,16,(5)属性操作符:类型 PTR 表达式 例:MOV WORD PTR BX,5段操作符 例:MOV ES:BX,ALSHORT 标号 例:JMP SHORT NEXTTHIS 类型 例:TA EQU THIS BYTE TB DW 100 DUP(?)NEXT EQU THIS FAR MOV CX,100字节分离操作符 例:CONS EQU 1234H HIGH MOV AH,HIGH CONS LOW MOV AL,LOW CONS,17,第四章作业Page 1191224.4 4.5 4.84.12 4.14 4.18,