《汇编语言第4章汇编语言程序格式.ppt》由会员分享,可在线阅读,更多相关《汇编语言第4章汇编语言程序格式.ppt(25页珍藏版)》请在三一办公上搜索。
1、IBM-PC汇编语言程序设计,品厌严铆巩杭诊料仙驼评荤仆绪诗吴嚼卯自恤育阂躁眯豹关闷确吱戳酥颅汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,第4章 汇编语言程序格式,4.1 汇编程序功能,编辑TC产生.ASM文件,宏汇编MASM产生.OBJ文件,连接LINK产生.EXE,调试DEBUG.EXE,DOS下运行.EXE,错,错,错,恐仲交牡蕊俗茬殃谆抑野根坦孵峦妇沫盗畜惰扦综踏洞豪灸琐憾劲莹弛萎汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,4.2 伪指令,一、处理器选择伪操作 二、段定义格式:段名 SEGMENT 定位类型 组合类型 类别 段名 ENDS,且
2、厦渔疟舀狐仰歪棒萄冰虫缓拯叠司恋拿今薛催搂锄暴恶宦貌幂力弛兄彬汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,1.定位类型(align _type):告诉连接程序,前段放完后,后一段将从什么起始地址边界存放。PAGE(页):表示此段物理地址起始地址后8位为0 即 0000 0000PARA(节):表示此段物理地址起始地址后4位为0 即 0000DWORD(字):表示此段必须从双字的边界开始 即 00WORD(字):表示此段必须从字的边界开始 即 0BYTE(字节):表示此段可以从任何地址开始 即*省略定位类型,即为PARA,岿欺磕蒋草棵芒煽革匣炭蟹腕曰蔚乖少石郎屉漠火犀渡黎奎
3、午定淳友搂筐汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,2.组合类型(combine _type):告诉连接程序,本段与其它段的关系。PRIVATE:本段与其它段在逻辑上不发生关系,每段有自 己的基地址:隐含的组合类型。PUBLIC:把本段与同名同类的其它段相邻地连在一 起,给定一个共同段基地址,大小不超过64K。STACK:把本段与同名同类的其它段相邻地连在一 起,指定该段在运行时为堆栈的一部分。无间 隙。COMMON:连接程序为本段与其它同名同类段指定相同 的基地址,产生覆盖存贮。AT 表达式:连接程序把本段装在表达式的值所指定的段地 址上,它不能指定代码段。MEMO
4、RY:连接程序将把本段定位在被连接一起的其它所 有段之上。,礼腕较噪怠险褒鳞滔摇押昔磷暴挪绞翁柳炕橱奄验众伯夜销改碍筹妈嘛郭汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,3.类别(“class”):为单引号括起来的字符串,一般为:CODE,DATA,EXTRA,STACK功能:按类别名相同的段(段名不一定相同)组织 起来存放在连接的存贮区中。,痢坡尿恬框汪牵嗜野伴凑败卸刃扼坏炒跌俞圾默酮迎镐陷牙德阵昨沤撼绦汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,例:,模块1,:A SEGMENT PARA PUBLIC S A1 DB 55H DUP(0)A EN
5、DSB SEGMENT PARA COMMON S1 B1 DB 202H DUP(0)B ENDS,模块2,:A SEGMENT PARA PUBLIC S A2 DB 103H 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公共存贮区(覆盖存放),世险叛股砾兜窿皂鹏
6、讣颗古两言丫隆爵窜严嚷甭殴鸽泰暂棺鳃坪辞炊枢泉汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,例:,模块1,:A SEGMENT PARA S A1 DB 55H DUP(0)A ENDSB SEGMENT PARA COMMON S1 B1 DB 202H DUP(0)B ENDS,模块2,: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
7、0FFH:0006H:0102H 0FFH 空13个字 节单元0017H:0000H 00:0017H:0201H 00:,A段,B段,B1和B2公共存贮区(覆盖存放),C段,茂矣踊祝获氦邀掇辱刹瞅壳金湃磕寺问惜瞻杠蚀艰搜廉雇肾比佰嗡筏沃述汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,三、程序的开始和结束。四、数据定义五、赋值伪操作EQU和=1.等价伪指令 格式:符号名 EQU exp 用途:给符号名定义一个值、别的符号名、一条可执行命 令等。例如:PORT EQU 256 BUF EQU PORT+22.等号伪指令 格式:符号名exp 如:EMP=6 EMP=9*等号伪指
8、令可以给已定义符号名重新定义值,而等价伪指令不能对符号名重新定义值。*不为已定义的符号名分配存贮单元。,鄂黄珐淌掐膨欺填琅扶完祭腊嘉职舀破请梗织尾茎影伯兔饶挎杜蛆祝隙门汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,六、地址计数器与对准为操作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 5F 0059H 00 005
9、AH 03 005BH 00 005CH 60 005DH 00,此及摈瞧粒墩凉鹿窗拓判隧钩附兵疽帖杖殷稠隙彰琴掷缅攒敏眼挝震袒拘汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,设某数据段: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字节单元的内容是(),录讨惯踪菠扁迎辐妻字订懂服粘钝物梅蛊熔埋株子菲均专蚕灭滥嫡糠碗律汇编语
10、言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,4.3 汇编语言程序格式,格式:名字项 操作项 操作数,操作数;注释一、名字项(name)1.标号:机器指令语句存放地址的符号表示,也可表示过程名。用于转移指令和CALL语句的操作数项。标号有三种属性:段属性:指定义该标号所在段的段首址。偏移地址属性:它表示段起始地址到定义符号的位置之间的字节数。类型属性:制定符号在本段使用,还是在其它段中使用:NEAR:本段使用 FAR:段外使用,受姨饯蓝缠芯瓶馆跪芯板表唇拭指聪疑他托笆坚普骋彩杭瑞陇鸣扦荆郡豁汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,2.变量:数据存放地址的
11、符号表示 变量有三种属性:段属性:变量所在段的段首址 偏移地址属性:段首址到变量处的字节个数 类型属性:字节或字等类型,由类型定义伪指令定义。DB:字节类型1个字节 DW:字类型2个字节 DD:双字节类型4个字节 DQ:四字类型8个字节 DT:十字节类型1个数据占10个字节,呀卢群凿夷捉锻妥沟催筛鳖砧锯洱不黎烷厨玄旷专北犀奸习遮蹲痕夫源企汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,二、操作项(operation)三、操作数项(operand)组成:常数、寄存器、标号、变量或表达式表达式:由常数、变量、标号通过操作运算符连接而成的。1.算术运算符(arithmetic op
12、erator):,/,MOD用于:数据和地址表达式 例:var1 dd 1,7,8,6,9 var2 dw?mov ax,var1+(5-1)*4 mov cx,(var2-var1)/4,笺云望镁揩绘胡翔锥磕铬眷钳乃晰潮极瘟耗玖禾雾缴伎讶舆谐噬将匈楼扑汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,2.移位和逻辑操作符移位运算符:SHR(右移),SHL(左移)逻辑运算符:AND(与),OR(或),XOR(异或),NOT(非)用于:数值和地址表达式中。例:AND DX,789AH AND 0FH(立即数)MOV AL,A SHR 3(立即数)若A=11111111B,则:表达
13、式:A SHR 3,结果为00011111B AL,蔼蜡肥馁谣存翟庐驯瓤采经量庄崎佣跃戏鞍登约祥厨检舌位炼控突舔亮豹汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,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,扼秧畏颠渤篱少毙辈聂百相猿
14、腻鹿肿贯鹊澄逼农狗雄窄勾迅携持嘲诱推鸽汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,4.数值回送(value _returning operator)(1)TYPE格式:TYPE 变量或标号功能:若是变量,回送该变量以字节数表示的类型DB为1,DW为2,DD为4,DQ为8,DT为10。若是标号,回送代表该标号类型的数值NEAR为0FFFFH(-1),FAR为0FFFEH(-2)。例:VAR1 DW 1,2 MOV AX,TYPE VAR1,2,癸柠组烙但谨菊医鼓酶零惟扦跌认石邮褒逮瞪辖淬斜费钾悸喳狙橙钧送辙汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,(
15、2)LENGTH:取存贮单元个数算符格式:LENGTH 变量(3)SIZE:取存贮区大小算符 格式:SIZE 变量SIZE=LENGTH*TYPE(4)SEG:取段首址算符格式:SEG 变量或标号(5)OFFSET:取偏移地址算符格式:OFFSET 变量或标号,敛兵乞饭功颅去蝗眼娶肪滚澄葬劝慰咎痕岛炙骏瘩亩裕爹处吟颅脂学中骚汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,例:DAT SEGMENT A DW 50,100,70H B DB ABCDEF,5 DUP(0)C DW B D DD 50 DUP(?)DAT ENDS:MOV AX,SEG B;DATAX MOV B
16、X,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:,辑萎限恢时拳放鲤企培扁率赚盛栗敏昆颇麻瓜试类剂罩獭莽助辟世掇坠剁汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,例:MOV SI,OFFSET VAR LEA DI,VAR MOV BX,DI LEA BX,DI MOV BX,OFFSET DI,(错),隋摊癣侩嗓跋魂递釜磺廊蕴苞汰荣哪哭白申外摄柳找俭费馏足靖蟹刁挤筏汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言
17、程序格式,5.属性操作符(attribute operator)(1)PTR格式:类型 PTR 地址表达式其中:类型为 BYTE 字节 WORD 字 DWORD 双字 NEAR 段内 FAR 段,妮摧显吧矩镶坐盼娠摘掇哭肩闻沈颗徘兰吝侈芒钠洲侯剔固姬域顾饯羡舷汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,(2)THIS格式:THIS 类型类型同PTR改变类型的方法:LABEL格式:名字 LABEL 类型 LABEL通常要与指令语句或用DB、DW、DD伪指令的数据定义语句连用。例:BYTE_VAR LABEL BYTE WORD_VAR DW 1,2,3,4PTR与EQU例:
18、VAR DW 1234H BYTE_VAR EQU BYTE PRT VAR WORD_VAR EQU BYTE PTR VAR+1,非蹲品颤图拳叠溯铭塔渗乘旁饼溅殷耿冈免禾歉挞络头外祁针夜姐雹阀舍汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,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位常量或地址表达
19、式的偏移量的高字节;LOW用来分离出16位常量或地址表达式偏移量的低字节。,镇媳鹿盏拒充詹贬欲才掺素逊阅少拾蛇杏梭刑见贝胀鳞粱蛀肩昆凡降秸晴汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,6.算符优先级:括号(圆括号,方括号,尖括号),SIZE,LENGTH:PTR OFFSET,SEG,TYPE,THIS HIGH,LOW*,/,MOD,SHL,SHR+,-EQ,NE,LT,LE,GT,GE NOT AND OR,XOR SHORT,高低,厘袁席蛾舜磕甫祖鸯管氓允儿戈煞阂趣儒奄沦砰存劳补坦放癣访刑逐漳堤汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,四、注释项本章小结:重点掌握汇编语言的伪指令;汇编语言的格式,以及表达式的灵活应用。,主彻啃住顿波椅誓薪至摄音鸿狙谱佃炕埂堪棍贱袖丝封您坤确锤渤佰锻伦汇编语言第4章 汇编语言程序格式汇编语言第4章 汇编语言程序格式,