《【教学课件】第四章汇编语言程序格式.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章汇编语言程序格式.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 汇编语言程序格式汇编语言程序格式汇编程序汇编程序编辑程序编辑程序连接程序连接程序PROGRAM.ASMPROGRAM.OBJPROGRAM.EXE4.1 4.1 汇编程序功能汇编程序功能14.2 4.2 伪操作伪操作 伪伪操操作作是是汇汇编编程程序序对对源源程程序序进进行行汇汇编编时时处处理理的的操操作作,完完成数据定义、分配存储区、指示程序开始结束等功能。成数据定义、分配存储区、指示程序开始结束等功能。数据定义及存储器分配伪操作数据定义及存储器分配伪操作格式:格式:变量变量 助记符助记符 操作数操作数 ,操作数操作数,;注释注释 助记符:助记符:DB DW DD DQ DTDA
2、TA_WORD DW 100,100HDATA_BYTE DB 100 DUP(?)MESS1 DB ABMESS2 DW ABABMESS1BAMESS22例:例:OPER1 DB?,?OPER2 DW?,?MOV OPER1,0 ;字节指令字节指令 MOV OPER2,0 ;字指令字指令例:例:OPER1 DB 1,2 OPER2 DW 1234H,5678H MOV AX,OPER1+1 MOV AL,OPER2 类型不匹配类型不匹配 MOV AX,WORD PTR OPER1+1 MOV AL,BYTE PTR OPER2(AX)=3402H (AL)=34H0102 3412 78
3、56OPER1 OPER23变量和标号:变量和标号:所有的变量和标号都有三种属性所有的变量和标号都有三种属性段值段值(SEG)偏移量偏移量(OFFSET)类型类型(TYPE):变量(字节:变量(字节/字字/双字双字/四字四字/十字节)十字节)标号(标号(NEAR/FAR)例:例:BYTE_ARRAY LABEL BYTE WORD_ARRAY DW 50 DUP(?)BYTE_ARRAYWORD_ARRAY4表达式赋值伪操作表达式赋值伪操作EQU(不占存储单元)(不占存储单元)格式:表达式名格式:表达式名 EQU 表达式表达式 CONSTANT EQU 256 ALPHA EQU 7 BETA
4、 EQU ALPHA-2“=”伪操作伪操作(允许重复定义)(允许重复定义)格式:变量格式:变量=表达式表达式 EMP=7 EMP=EMP+1 5段定义伪操作段定义伪操作格式:格式:段名段名 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 endsSTACK40H(SP
5、)(SS)6data_seg1 segmentdata_seg1 ends ;定义数据段定义数据段data_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例:例:7程序开始和结束伪操作程序开始和结束伪操作格式:格式:TITLE 程序名程序名 END
6、程序首地址标号程序首地址标号对准伪操作对准伪操作EVEN ;使下一地址从偶地址开始使下一地址从偶地址开始A DB morningEVENB DW 2 DUP (?)ORG 常数表达式常数表达式 ;使下一地址是常数表达式的值使下一地址是常数表达式的值 ORG 100HSTART:.8$地址计数器:保存当前正在汇编的指令的地址地址计数器:保存当前正在汇编的指令的地址例:例:ORG$+8 ;跳过跳过8个字节的存储区个字节的存储区 JNE$+6 ;转向地址是转向地址是JNE的首址的首址+6例:例:$用在伪操作的参数字段用在伪操作的参数字段表示地址计数器的当前值表示地址计数器的当前值 ARRAY DW
7、1,2,$+4,3,4,$+4 01 0074 000200ARRAY7C 0078000300040082 007E009基数控制伪操作基数控制伪操作格格式式:.RADIX 表表达达式式(2,8,10,16);规规定定无无标标记记数数的的基基数数例:例:.RADIX 16 MOV BX,0FF MOV BX,178D104.3 4.3 汇编语言程序格式汇编语言程序格式 符号地址符号地址 操作操作 操作数操作数 ;注释注释 变量变量 指令指令 寄存器寄存器 说明程序或语句说明程序或语句 标号标号 伪指令伪指令 标号标号 的功能的功能 宏指令宏指令 变量变量 常数常数 表达式表达式表达式表达式:
8、数字表达式:数字表达式 地址表达式地址表达式11表达式操作符(表达式操作符(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 汇编汇编AND AX,112(3)关系操作符:)关系操作符:EQ,NE,LT,LE,GT,GE 计算结果为逻辑值:计算结果为逻辑值:真真 0FFFFH 假假 0000H 例:例:MOV F
9、ID,(OFFSET Y-OFFSET X)LE 128X:Y:若若 128(假假)汇编结果汇编结果 MOV FID,-1汇编结果汇编结果 MOV FID,0若若 128(真真)13(4)数值回送操作符:)数值回送操作符:OFFSET/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 变量变量 功能:回送由功能:回送
10、由DUP定义的定义的变量的单元数,其它情况回送变量的单元数,其它情况回送1 1 SIZE 变量变量 功能:功能:LENGTH*TYPE14例:例: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 CX,100 MOV CX,LENGTH TABLE ;MOV CX,1 MOV CX,SIZE ARRAY ;MOV CX,200 MOV CX,SIZE TABLE ;MOV CX,115(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 CONS16第四章作业第四章作业Page 1191224.4 4.5 4.84.12 4.14 4.18 17