160-4.1 汇编语言程序格式.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.2汇编语言的数据与表达式 4.2.1常量、变量与标号 4.2.2表达式与运算符 4.2.2 表达式与运算符 1.算术运算符 算术运算符包括加(+)、减(-)、乘(*)、除(/)、求余(MOD)、左移(SHL)和右移(SHR)共七种。 2.逻辑运算符 逻辑运算符包括AND(与)、OR(或)、XOR(异或)、NOT(非)共四种,它们只适用于对常量进行逻辑运算。 3.关系运算符 关系运算符包括EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于等于)、 GE(大于等于)共六种。 4.数值返回运算符 数值返回运算符包括SEG(段基址)、OFFSET(偏移量)、TYPE(类型),LENGTH、SIZE,运算的对象是存储器操作数,返回变量或标号的属性值。 5.修改属性运算符 例题 例4-3 逻辑运算符的应用 MOV AL,NOT ;(AL) MOV AL AND ;(AL) MOV AL OR ;(AL) 例题 例4-4 关系运算符的应用 MOV AX,5 EQ 101B ;(AX)←0FFFFH MOV BH,10H GT 16 ;(BH)←0 例题 例4-5 数值返回运算符的应用 K1 DB 30H,31H,32H K2 DW 4041H,4043H K3 DW 20H DUP(0) K4 DD MOV AL,TYPE K1 ;等效于MOV AL,1 MOV AH,TYPE K2 ;等效于MOV AH,2 MOV AL, LENGTH K3 ;(AL)←20H,返回DUP前面的数值 MOV CL, LENGTH K4 ;(CL)←01H MOV BL, SIZE K3 ;(BL)←40H MOV DL, SIZE K4 ;(DL)←04H 4.5.2 基本结构程序设计 顺序结构 分支结构 循环结构 4.6 汇编语言与C语言的接口 4.6.1汇编语言与高级语言接口 4.6.2混合编程 4.6.1汇编语言与高级语言接口 汇编语言与高级语言接口时,需要解决两个问题: 1 调用与被调用 被调用的过程或函数应预先说明为外部类型,如用PUBLIC说明汇编子程序被外部模块调用;调用程序则要说明要引用的外部模块名。 2 参数传递 汇编语言与高级语言一般用堆栈来实现参数的传递,因此,必须了解各种语言的堆栈结构、生成方式和入栈方式等。BASIC,FORTRAN,PASCAL等语言其参数进栈顺序与参数在参数表中出现的顺序相同,即从右到左,而C语言则相反。 4.6.2 混合编程 1. C语言调用汇编 2. C语言嵌入汇编 1. C语言调用汇编 例4-30 用C语言调用汇编语言,实现两个数求和。 ;C语言程序段CAL.C #INCLUDE “STDIO.H” #INCLUDE “STDLIB.H” int result; extern sum(int i, int j, int *r); main(void) { int i, j; printf(“enter two number:”); scanf(“%d,%d”,1,j); sum(i,j,result); printf(“%d\n”,result); } ;汇编语言程序段_SUM.ASM,完成两数相加 PUBLIC_SUM _CODE SEGMENT ASSUME CS:CODE _SUM PROC NEAR PUSH BP MOV BP,SP MOV AX,[BP+4] ADD AX,[BP+6] MOV DI,[BP+8] MOV [DI],AX POP BP RET _SUM ENDP _CODE ENDS END 2. C语言嵌入汇编 在C语言程序中直接编写汇编语言代码,称为嵌入汇编。C程序中嵌入汇编后可以无分号(C语言的语句以分号结束,汇编语句是C语言中唯一以换行结束的语句),以关键词ASM声明一个嵌入汇编指令,如需多个ASM语句,可以将它们放在花括号内,如: ASM ADD AX,BX ASM {DIV BX PUSH AX MOV AX,0} 4.5 程序设计 4.5.1 程序设计步骤 4.5.2基本结构程序设计 4.5.3子程序设计 4.5.4程序设计举例 返 回 4.5.1程序设计步骤 (1)分析问题

文档评论(0)

小玉儿 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档