,完成数据定义、分配存储区、指示程序开始结束等功能。数据定义及存储器分配伪操作格式:[变量]助记符操作数[,操作数,…][;注释]助记符:DBDWDDDQDTDATA_WORDDW100,100HDATA_BYTEDB100DUP(?)MESS1DB‘AB’MESS2DW‘AB’‘A’‘B’MESS1‘B’‘A’MESS22例:OPER1DB?,?OPER2DW?,?…MOVOPER1,0;字节指令MOVOPER2,0;字指令例:OPER1DB1,2OPER2DW1234H,5678H…MOVAX,OPER1+1×MOVAL,OPER2×类型不匹配MOVAX,WORDPTROPER1+1MOVAL,BYTEPTROPER2(AX)=3402H(AL)=34H0**********OPER1OPER23变量和标号:所有的变量和标号都有三种属性段值(SEG)偏移量(OFFSET)类型(TYPE):变量(字节/字/双字/四字/十字节)标号(NEAR/FAR)例:BYTE_ARRAYLABELBYTEWORD_ARRAYDW50DUP(?)BYTE_ARRAYWORD_ARRAY4表达式赋值伪操作EQU(不占存储单元)格式:表达式名EQU表达式CONSTANTEQU256ALPHAEQU7BETAEQUALPHA-2“=”伪操作(允许重复定义)格式:变量=表达式…EMP=7…EMP=EMP+1…5段定义伪操作格式:段名SEGMENT[定位类型,组合类型,类别]……段名ENDS例:定义用户堆栈stack_segsegmentdw40Hdup(?)toslabelwordstack_segendscode_segsegment……movax,stack_segmovss,axmovsp,offsettos……code_segendsSTACK40H(SP)(SS)6data_seg1segment…data_seg1ends;定义数据段data_seg2segment…data_seg2ends;定义附加段code_segsegmentassumecs:code_seg,ds:data_seg1,es:data_seg2start:movax,data_seg1movds,axmovax,data_seg2moves,ax;段地址段寄存器…code_segendsendstart例:7程序开始和结束伪操作格式:TITLE程序名END[程序首地址标号]对准伪操作EVEN;使下一地址从偶地址开始ADB‘morning’EVENBDW2DUP(?)ORG常数表达式;100HSTART:…...8$地址计数器:$+8;跳过8个字节的存储区JNE$+6;转向地址是JNE的首址+6例:$用在伪操作的参数字段——表示地址计数器的当前值ARRAYDW1,2,$+4,3,4,$+40**********ARRAY7C0078000300040082007E009基数控制伪操作格式:.RADIX表达式(2,8,10,16);规定无标记数的基数例:.RADIX16MOVBX,0FFMOVBX,178D10
汇编语言程序设计4 来自淘豆网www.taodocs.com转载请标明出处.