欢迎来到天天文库
浏览记录
ID:42723282
大小:526.50 KB
页数:97页
时间:2019-09-21
《第4章 汇编语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微型计算机原理及应用1第四章汇编语言程序设计2§4.1汇编语言概述3汇编语言:用指令的助记符、符号地址、标号、伪指令等符号书写程序的语言称为汇编语言。源程序:用这种汇编语言书写的程序称为汇编语言源程序或称源程序。汇编:把汇编语言源程序翻译成在机器上能执行的机器语言程序(目的代码程序)的过程叫做汇编。汇编程序:完成汇编过程的系统程序称为汇编程序。4.ASM.OBJ.EXE汇编连接宏汇编程序:MASM.EXE连接程序:LINK.EXE编辑程序源程序连接程序汇编程序目标程序执行程序步骤:1)编写源程序;2)汇编;3
2、)连接;4)调试。5每当一个用户的可执行文件.EXE装入内存后,存储器的分配情况如图:系统占用程序段前缀用户数据区用户堆栈区用户代码段…………系统和ROM占用00000HDS,ES100个字节SS用户程序空间FFFFFHCS6用户编写程序,程序在计算机中运行,计算机的控制由操作系统交给用户程序,运行用户程序,当用户程序运行结束后,应再将控制权交回操作系统,所以,在程序中应该有返回DOS的操作。在计算机中,返回DOS的操作由操作系统中的一个子程序来实现,用户使用时调用这个子程序即可。7系统占用INT20H程序段
3、前缀用户数据区用户堆栈区用户代码段…………系统和ROM占用无论用户程序有几段,也无论这些段的排列顺序如何,用户程序的代码前一定有100个字节的程序段前缀(ProgramSegmentPrefix,简称PSP),PSP给出了用户的可执行文件(.EXE)的若干控制信息。其中PSP的开始处(第1,2字节)有一条中断指令INT20H的代码,通过它可以结束用户程序,返回操作系统。在用户程序执行完以后,通过执行该条指令就可以返回DOS。8§4.2汇编语言程序语句行的构成9由汇编语言编写的源程序是由许多语句(也可称为汇编指
4、令)组成的。每个语句由1~4个部分组成,其格式是:[标识符]指令助记符[操作数][;注解]其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,一行最多可有132个字符。汇编语言的语句格式10(1)标识符标识符由下列字符组成:字母:A~Z,a~z;数字:0~9;特殊字符:?.@_$数字不能作标识符的第一个字符,而.仅能作标识符的第一个字符,标识符最长为31个字符。4.2.1标记(2)保留字汇编语言中预先保留下来的具有特殊含义的符号,只能作固定用途,不能作为标识符用。如8086的指令、伪
5、指令、寄存器名等都是保留字。11(3)界符表明某个标记的结束,本身也有一定的意义。一般作为一个程序中或者一条指令中两个部分的分隔符用。,;/>+[]().*&=(5)注释该项可有可无,是为源程序所加的注解,用于提高程序的可读性。在分号(;)后面的任意字符序列。(4)常量二进制(B),八进制(Q),十六进制(H),十进制(D)(默认),字符串124.2.2表达式是由运算符和操作数组成的序列,在汇编时产生一个确定的值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移地址,相应的表达式称为常量表达式和地址
6、表达式。13(1)常量操作数常量操作数是一个数值操作数,一般是常量或者是表示常量的标识符。如:COUNTEQU10NAME=‘J’可以为数字常量操作数或字符串常量操作数。前者可采用二进制、八进制、十进制或十六进制等进位计数形式;而后者所对应的常量值为相应字符的ASCII码。1、操作数14(2)存储器操作数存储器操作数是一个地址操作数,代表一个存储单元的地址,通常以标识符的形式出现。变量:代表的是某个数据在数据段、附加段或堆栈段中的地址。变量所对应的存储单元内容在程序的运行过程中是可以改变的。标号:代表的是某条
7、指令代码在代码段中的地址。标号通常作为转移指令或调用指令的目标操作数,在程序运行过程中不能改变。15存储器操作数有三个属性段属性(SEG):所对应存储单元的段地址偏移量属性(OFFSET):所对于存储单元在所在段内的偏移地址(距段起点的字节数)类型属性(TYPE)变量的类型是占用存储单元的字节数,分为:B(1个字节)W(2个字节)D(4个字节)标号的类型则反映了相应存储单元地址在作为转移或调用指令的目标操作数时的寻址方式,可有两种情况,即NEAR和FAR。16汇编语言运算符:是汇编程序在汇编时计算的,与运算指
8、令不同,指令是在程序运行时计算的。1、算术运算符、逻辑运算符、关系运算符如:+、-、×、/、MODAND、OR、NOT、XOR(与逻辑运算指令的区别)EQ、NE、LT、GT、LE、GE2、运算符2、分析运算符和综合运算符17注意:算术运算符总可以用于数字操作,其结果也是数字的。当应用于存储器操作数时,只有+,-运算符有意义;逻辑运算符的操作数也必须是数字,存储器操作数不能进行逻辑运算;关系运算符连接
此文档下载收益归作者所有