资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第四章 汇编语言,4.1 汇编语句格式 4.2 汇编语言中数据的表示方法 4.3 运算符号 4.4 伪指令 4.5 汇编语言的上机过程,2,4.1 汇编语句格式,4.1.1 字符集 4.1.2 汇编语句格式,3,Microsoft的宏汇编语言由下列字符组成: (1)英文字母:AZ和az。 (2)数字字符:09。 (3)算术运算符:+,-,*,/。 (4)关系运算符:。 (5)分隔符:,:,;,(,),”, (空格),TAB(制表符)。 (6)控制符:CR(回车),LF(换行),FF(换页)。 (7)其它字符:,_(下划线),.,%,!。,4.1.1 字符集,4,4.1.2 汇编语句格式,DSEG SEGMENT ;数据段开始 DATA1 DB 13H,26H ;原始数据 DATA2 DW 0 ;保存结果单元 DSEG ENDS ;数据段结束 SSEG SEGMENT STACK ;堆栈段开始 SKTOP DB 20 DUP(0) SSEG ENDS ;堆栈段结束 CSEG SEGMENT ;代码段开始 ASSUME CS:CSEG,DS:DSEG, SS:SSEG START:MOV AX,DSEG ;初始化数据段基址 MOV DS,AX MOV AX,SSEG ;初始化堆栈段基址 MOV SS,AX MOV SP,LENGTH SKTOP ;设段堆栈指针 XOR AH,AH MOV AL,DATA1 ;取第一个数据 ADD AL,DATA11 ;与第二个数据相加 ADC AH,0 MOV DATA2,AX ;保存结果 MOV AH,4CH INT 21H ;返间DOS CSEG ENDS ;代码段结束 END START ;源程序结束,5,汇编语言源程序是若干汇编语言语句的有序集合 一个语句是一条指令语句、伪指令语句或宏指令语句 汇编语句最多由四个域组成:,标号 操作符 操作数 ;注释,6,1. 标号,(1) 定义: 程序设计人员自己定义的符号, 用于代表内存单元的地址。 (2) 标号的组成规则 1) 组成标号的字符: AZ,az,09,?,.,$和_(下划线)。 2) 标号的最大长度为3l(字符个数)。 3) 标号的第一个字符不能是09的数字。 4) 机器指令语句中标号必须以冒号结束,伪指令语句中的标号不允许有冒号。,7,(3) 标号的三个属性,段值属性:标号所在段的段值,一个在数据段中定义的标号段值是DS的值,而在代码段中定义的标号段值是CS的值,可以用SEG取得。 偏移量属性:标号所在段起始偏移地址到它的存放位置之间的字节数,可以用OFFSET取得。,8,类型属性:当标号表示数据在内存的偏移地址时,伪指令DB、DW、DD、DQ、DT就规定了其属性为字节、字、双字四字和十字节属性,标号的类型属性实际上指出了为这个变量类型分配的字节数目;当标号表示机器指令代码中的地址时,类型NEAR和FAR指出了该标号是否能被其他代码段的指令调用。可以用TYPE算符得到。,9,2. 操作符 操作符可以是指令助记符, 伪指令助记符,宏指令符号。 3. 操作数 操作数是操作符操作的对象,可以是数据本身,也可以是标号、寄存器名或算术表达式。 4. 注释 以分号开始,不被执行。注释是对指令功能的说明,目的是使自己或他人在阅读分析程序时方便。,10,4.2.1 数据在机内的表示 4.2.2 汇编语言中数据的书写形式,4.2 汇编语言中数据的表示方法,11,4.2.1 数据在机内的表示,(1)数据的符号 用0表示正,1表示负. 对于定点表示有原码、反码、补码和过余码等表示方法. (2)数据的定点表示法(补码) 1)小数点在最低位之后,代表纯整数, 16位表示范围为 -32768+32767 2)小数点在最高位和次高位之间,代表纯小数,16位定点小数的表示范围为-11-2-15 (3)数据的浮点表示法 在浮点表示中, 分为尾数和阶码两部分,有多种表示方法。现在一般用IEEE的表示方法.,12,1ffffff,13,转换为二进制为 100100.101 规格化后为 1.0010010125 阶码为 101 加过余量127后 0111 1111+00000101=10000100 尾数(23位) 001 0010 1000 0000 0000 0000 符号&阶码&尾数 01000010 00010010 10000000 00000000 用16进制表示为 42 12 80 00 符号位变化 11000010 00010010 10000000 00000000 C2 12 80 00,浮点数据表示法(举例),36.625,-36.625,14,(4) 数据的表示范围,1)一个字节(字节数据) 无符号整数 0255 补码表示带符号整数 -128127 2)二个字节(字数据) 无符号整数 0 655535 补码表示带符号整数 -32767 +32768 3) 四字节表示的浮点数据(规格化) 正数: 2128(1-2-24)N2-127 负数:2128(-(1-2-24)N-2-127 零: 阶码和尾数同时为0,15,4.2.2汇编语言中数据的书写形式,1)二进制常数 0,1 以B结尾 2)八进制常数 07, 以Q结尾 3)十进制常数 09, 以D结尾或空 4)十六进制常数 09, AF, 以H结尾 5)十进制科学记数法常数 以09,E和指数组成, 如 0.2467E+5 6)字符常数 用单引号或双引号给出,例如 a ,”高” 7)标识符号 用符号定义伪指令定义的符号。 8)表达式 用运算符号连接起来的以上各种数据,16,算术运算符 逻辑运算符 关系运算符 分析算符 组合算符 字节分离算符 运算符的优先级,4.3 运算符,17,(1)算术运算符,七个: + - * / MOD SHL SHR + - * / 与通常的用法相同 MOD(取模) 两数相除之余数, 例 10 MOD 3=1 SHL(左移) 按二进制左移, 例 10 SHL 2 =40 SHR(右移) 按二进制右移, 例 10 SHR 2 =2,18,(2)逻辑运算符1,AND(与) 按位与 76H AND 23H=22H,0111 0110 0010 0011 0010 0010,AND,OR(或) 按位或 76H OR 23H=77H,19,(2)逻辑运算符2,XOR 异或 76H XOR 23H=55H,NOT(非) 按位取反 NOT 76H =89H,20,(3)关系运算符,相等EQ、不等NE、小于LT、大于GT、小于或等于LE、大于或等于GE 参与运算的两个操作数必须都是数据,或者是同一段中的存储单元,而结果总是一个数值:全0或者全1(0FFH或者0FFFFH),MOV AX,0 LT 1 MOV AL,0 LT 1,21,(4)分析算符,1. SEG 取标号所代表的地址的段地址. 2. OFFSET 取标号所代表的地址的偏移量. 3. TYPE 取标号所代表的内存单元的类型值.,ALPHA DB 15,23,46 BETA DW 4267H,25H MOV AX,SEG ALPHA MOV BX,SEG BETA MOV CX,OFFSET ALPHA MOV DX,OFFSET BETA MOV SI,TYPE ALPHA MOV DI,TYPE BETA,22,(4)分析算符,4. SIZE 取变量分配的内存单元的字节数。 5. LENGTH 取变量分配的内存单元数。,ALPHA DB 5 DUP(0),2 BETA DW 3 DUP (0),23 GAMA DD 4 DUP (0),2 DATA0 DW 32H,5 MOV AX,SIZE ALPHA ;5 MOV BX,SIZE BETA ;6 MOV CX,SIZE GAMA ;16 MOV DX,SIZE DATA0 ;2 MOV AX,LENGTH ALPHA ;5 MOV BX,LENGTH BETA ;3 MOV CX,LENGTH GAMA ;4 MOV DX,LENGTH DATA0 ;1,SIZE LAB= (LENGTH LAB) * (TYPE LAB),23,(5)综合算符1,PTR 用来建立或临时改变存储器操作数的类型。 格式:NEWT PTR 标号或存储单元,建立: MOV BX,10H 错误 MOV BYTE PTRBX,10H MOV WORD PTRBX,10H 临时更改: A1 DB 10H,20H MOV AX,A1 错误 MOV AX,WORD PTR A1,24,(5)综合算符2,格式:THIS 类型 THIS运算符通常和EQU伪指令连用,定义新的标号,其段基值和偏移量和紧跟其后的标号相同。,DATA0 EQU THIS BYTE DATA1 DW 1234H,5698H,25,(6)字节分离算符,用于将一个表达式的高字节和低字节分开。LOW取低字节,HIGH取高字节。,MOV AL,HIGH 1234H MOV AH,LOW 1234H MOV AL,LOW 12345 MOV AL,LOW 34*97+8 MOV AL, LOW OFFSET A1,26,运算符的优先级,表达式求值时,各种运算符的优先次序(由高至低)如下: 1)括号内的表达式 2)LENGTH,SIZE 3)PTR,OFFSET,SEG,TYPE 4)HIGH,LOW 5) *,MOD,SHL,SHR 6)十,一 7)EQ,NE,LT,LE,GT,GE 8)NOT 9)AND 10)OR,XOR。 优先级别相同时,按出现次序由左至右顺序计算。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号