《微机原理与应用》第4章汇编语言程序设计.pptx
《微机原理与接口技术》
主讲易凡
武汉大学物理学院电子科学与技术系
第四章
汇编语言程序设计
汇编语言程序的一般概念4.1汇编语言的基本概念机器语言用机器码(二进制码)表示操作的程序语言,与处理器相关,可直接执行,但难懂,检查难;高级语言具有普适性的程序设计语言,功能强大,易编写,易检查,与机器无关。汇编语言用多种助记附表示多操作的语言,面向机器,但易懂,易检查,机器不能识别
汇编语言程序的一般概念(续)3执行文件经连接后将目标文件与库文件或其它目标文件连接在一起形成的可执行的文件,属性为EXE5汇编程序完成汇编工作的程序1汇编语言源程序用汇编语言按一定格式编写的程序,它不能直接执行。源程序的属性为ASM2目标文件将源程序经汇编后转换成的二进制代码的文件,属性为OBJ4汇编将源程序转换成目标文件的翻译过程
21检查源程序;测出源程序中的语法错误,给出出错信息;常用的汇编程序有小汇编ASM,宏汇编MASM,以及TASM,TASMX,TASM32等产生目标代码程序,并给出列表文件(LST文件);展开宏指令;43汇编程序的主要功能
4.1.2上机的步骤编辑建立ASM源程序;将ASM文件经汇编(MASM)转换成OBJ文件;将OBJ文件经连接(LINK)转变成EXE文件上机执行。编辑源程序01PROGR.ASM文件02MASM汇编03PROGR.OBJ文件04LINK连接05PROGR.EXE文件06
汇编语言语句的类型4.2汇编语言程序格式指令语句能产生目标代码,CPU可以执行,完成特定功能的语句,由CPU指令组成。指示语句(伪指令语句)不产生目标代码,仅是为汇编程序作指示的语句。宏指令语句是一个指令序列,在汇编时,所有的宏指令语句都被展开为相应的指令序列。
4.2.2语句的格式语句格式为:[名字]〈助记符〉[操作数][;注释]其中,〈助记符〉项为必要项,[方括号项]为可选项。[名字]可为作名字的字符有:字母A~Z,数字0~9,字符?、·、@、_、$等数字不能放在名字之首在指令语句中,名字一般是标号。伪指令语句中,名字通常是变量(名),段名,过程名等标号:是某指令代码存放单元的符号地址,标号后必须有一个冒号“:”标号的属性:段,偏移量,类型(FAR,NEAR)变量(名)-某个存储器中数据单元或数据区的符号地址,它代表数据单元或数据区。变量有三种属性:段,偏移量,类型(BYTE,WORD,DWORD,QWORD)
4.2.2语句的格式〈助记符〉分为指令助记符和伪指令助记符。[操作数]指令操作的对象。可作为操作数的有:常量,寄存器,标号,变量和表达式。常量:如立即数,直接寻址的地址,ASCⅡ码字符串等寄存器:AX,AH,DS,SP,DX等
是常数、寄存器、标号、变量与一些操作符相组合的序列。分数字表达式和地址表达式两种。数字表达式产生一个数值结果,地址表达式产生一个地址。表达式:它不会被汇编,其功能为增加源程序的可读性。注释前必须加分号‘;’;注释项壹贰4.2.2语句的格式(续)
+(加)、-(减)、﹡(乘)、/(除)、MOD(模除,即两个整数相除后取余数)01该指令语句等价于03例4.1 MOV DX,BLOCK+(6-1)﹡202MOV DX,BLOCK+1004算术操作符4.2.3操作符
算术操作符应用之例例4.2数组ARRAY定义如下,试写出把数组长度(字数)存入CX寄存器的指令。ARRAY DW 1,2,3,4,5,6,7END DW?END是为计算数组长度而建立的符号地址。所需指令为:MOVCX,(END-ARRAY)/2汇编后计算表达式而形成了指令MOVCX,7
逻辑运算操作符AND(逻辑与)OR(逻辑或),XOR(逻辑异或)NOT(逻辑非)。它们只能用于数字表达式中124.2.3操作符(续)
例4.4 AND DX,PORT_VALAND0FEH例4.3 IN AL,PORT_VALOUT PORT_VALAND0FEH,AL汇编‘PORT_VALAND0FEH’确定了外设端口号当端口号PORT_VAL为偶数时,输出端口号与之相同;当PORT_VAL为奇数时,输出端口号比输入端口号小1逻辑运算操作符应用之例
EQ(等于)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)参与关系运算操作的两个操作数必须都同为数字或为同一段内的两个存储器地址。计算的结果应为逻辑值:结果为真,表示为FFFFH结果为假,表示为0关系运算操作符4.2.3操作符(续)
关系运算操作符应用之例例4.5: MOVAX,4EQ3 ;结