- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)分析问题
您可能关注的文档
- 215-第十五章 作业排程.ppt
- 216 业务流程重组(BPR ,Business Process Reengineering)强调.ppt
- 216-物业承接查验 陈甲胜.ppt
- 140-公式法分解因式.ppt
- 218-砂型铸造生产工艺流程.ppt
- 219-面向对象程序设计吴迪 毛琛.ppt
- 151-第六课 求索真理的历程.ppt
- 161-第十四章、物料需求規劃.ppt
- 162-福建区2012年05月第2期找商品竞赛精彩回顾.ppt
- 166-Visual FoxPro 6.0 程序设计.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)