收藏 分享(赏)

汇编语言+第04章+汇编语言.ppt

上传人:wspkg9802 文档编号:5957327 上传时间:2019-03-22 格式:PPT 页数:34 大小:126.50KB
下载 相关 举报
汇编语言+第04章+汇编语言.ppt_第1页
第1页 / 共34页
汇编语言+第04章+汇编语言.ppt_第2页
第2页 / 共34页
汇编语言+第04章+汇编语言.ppt_第3页
第3页 / 共34页
汇编语言+第04章+汇编语言.ppt_第4页
第4页 / 共34页
汇编语言+第04章+汇编语言.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、第四章 汇编语言,4.1 汇编语句格式 4.2 汇编语言中数据的表示方法 4.3 运算符号 4.4 伪指令 4.5 汇编语言的上机过程,4.1 汇编语句格式,4.1.1 字符集 4.1.2 汇编语句格式,Microsoft的宏汇编语言由下列字符组成: (1)英文字母:AZ和az。 (2)数字字符:09。 (3)算术运算符:+,-,*,/。 (4)关系运算符:。 (5)分隔符:,:,;,(,), (空格),TAB(制表符)。 (6)控制符:CR(回车),LF(换行),FF(换页)。 (7)其它字符:,_(下划线),.,%,!。,4.1.1 字符集,DSEG SEGMENT ;数据段开始 DATA

2、l DB 13H,26H ;原始数据 DATA2 DW 0 ;保存结果单元 DSEG ENDS ;数据段结束 SSEG SEGMENT STACK ;堆栈段开始 SKTOP DB 20 DUP(0) SSEG END5 ;堆栈段结束 CSEG SEGMENT ;代码段开始ASSUME CS:CSEG,DS:DSEG, SS:SSEG START: MOV AX,DSG ;初的化数据段基址MOV DS,AXMOV AX,SSEG ;初始化堆栈段基址MOV SS,AXMOV SP,LENGTH SKTOP ;设段堆栈指针MOV AL,DATA1 ;取第一个数据ADD AL,DATAl十1 ;与第二

3、个数据相加MOV BYTE PTR DATA 2,AL ;保存结果M()V AH,4CHINT 21H ;返间DOS C5EG ENDS ;代码段结束END START ;源程序结束,汇编语句最多由四个域组成:,标号 操作符 操作数 ;注释,4.1.2 汇编语句格式,1. 标号,(1) 定义: 程序设计人员自己定义的符号, 用于代表内存单元的地址. (2)标号的组成规则1)组成标号的字符:AZ,az,09,?,.,$, 和_(下划线);2)标号的最大长度为3l(字符个数)。3)标号的第一个字符不能是09的数字。4)机器指令语句中标号必须以冒号结束,伪指令语句中的标号不允许有冒号.,1. 标号,

4、(3) 标号的三个属性 1)段属性: 标号所代表的段的值, 可用SEG算符得到. 2)偏移量属性: 标号所代表的偏移量的值, 可用OFFSET算符得到 3)类型属性: 标号所代表的内存单元所存放的数据或指令代码的类型. 共有7种.,2. 操作符操作符可以是指令助记符, 伪指令助记符,宏指令符号。 3. 操作数操作数是操作符操作的对象,可以是数据本身,也可以是标号、寄存器名或算术表达式。 4. 注释注释是对指令功能的说明,目的实施自己或他人在阅读分析程序是方便。,4.2.1 数据在机内的表示 4.2.2 汇编语言中数据的书写形式,4.2 汇编语言中数据的表示方法,4.2.1 数据在机内的表示,(

5、1)数据的符号: 用0表示下,1表示负. 对于定点表示有原码反码补码等表示方法. (2)数据的定点表示法 1)小数点在最低位之后,代表纯整数, 16位表示范围为 -32768+32767 2)小数点在最高位和次高位之间,代表纯小数. (3)数据的浮点表示法在浮点表示中, 分为尾数和阶码两部分. 有多种表示方法,现在一般用IEEE的表示方法.,(3)浮点数据表示法,1ffffff,转换为二进制为 100100.101 规格化后为 1.0010010125 阶码为 101 加过余量127后 0111 1111+00000101=10000100 尾数(23位) 001 0010 1000 0000

6、 0000 0000 符号&阶码&尾数 01000010 00010010 10000000 00000000 用16进制表示为 42 12 80 00符号位变化 11000010 00010010 10000000 00000000C2 12 80 00,(3)浮点数据表示法(举例),36.625,-36.625,(4) 数据的表示范围,1)一个字节(字节数据) 无符号整数 0255 补码表示带符号整数 -128127 2)二个字节(字数据) 无符号整数 0655535 补码表示带符号整数 -32767+32768 3) 四字节表示的浮点数据(规格化) 正数: 2127(1-2-24)N2-

7、1272-1 负数:2127(-(1-2-24)N2-128(-2-1) 零: 阶码和尾数同时为0,4.2.2汇编语言中数据的书写形式,1) 二进制常数 0,1 以B结尾 2)八进制常数 07, 以O或Q结尾 3)十进制常数 09, 以D结尾或空 4)十六进制常数 09, AF, 以结尾 5)十进制科学记数法常数 以09,E和指数组成, 如 0.2467E+5 6)字符常数, 用单引号或双引号给出,例如 a ,”高” 7)标识符, 用符号定义伪指令定义的符号。 8)表达式,用运算符号连接起来的以上各种数据,4.3 运算符号,4.3.1 算术运算符 4.3.2 逻辑运算符 4.3.3 关系运算符

8、 4.3.4 分析算符 4.3.5 组合算符 4.3.6 字节分离算符 4.3.7 记录专用算符 4.3.8 算符的优先级,4.3.1 算术运算符,七个: + - * / MOD SHL SHR + - * / 与通常的用法相同 MOD(取模) 两数相除之余数, 例 10 MOD 3=1 SHL(左移) 按二进制左移, 例 10 SHL 2 =40 SHR(右移) 按二进制右移, 例 10 SHR 2 =2,4.3.2 逻辑运算符,AND(与) 按位与 76H AND 23H=22H,OR(或) 按位或 76H AND 23H=77H,4.3.2 逻辑运算符,XOR 异或 76H XOR 23

9、H=55H,NOT(非) 按位取反 NOT 76H =89H,4.3.3 关系运算符,(略),4.3.4 分析算符,1. SEG 取标号所代表的地址的段地址. 2. OFFSET 取标号所代表的地址的偏移量. 3. TYPE 取标与所代表的内存单元的类型值.,ALPHA DB 15,23,46 BETA DW 4267H,25HMOV AX,SEG ALPHAMOV BX,SEG BETAMOV CX,OFFSET ALPHAMOV DX,OFFSET BETAMOV SI,TYPE ALPHAMOV DI,TYPE BETA,4.3.4 分析算符,4. SIZE 取DUP分配的内存单元的字节

10、数。 5. LENGTH 取DUP分配的内存单元数。,ALPHA DB 5 DUP(0) BETA DW 3 DUP (0) GAMA DD 4 DUP (0)MOV AX,SIZE ALPHA ;5MOV BX,SIZE BETA ;6MOV CX,SIZE GAMA ;16MOV AX,LENGTH ALPHA ;5MOV BX,LENGTH BETA ;3MOV CX,LENGTH GAMA ;4,SIZE LAB= (LENGTH LAB) * (TYPE LAB),4.3.5 组合算符,1. PTR 用来建立或临时改变存储器操作数的类型。 2. THIS 用来为一个标号建立一个新的类

11、型。,MOV BX,10HMOV BYTE PTRBX,10HMOV WORD PTRBX,10H A1 DB 10H,20HMOV AX,A1MOV AX,WORD PTR A1 B1 EQU THIS WORD A2 DB 21H,34HMOV AX,B1,4.3.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,4.3.7 记录专用算符,1. MASK 2. WI

12、DTH,暂时不讲。,4.3.8 算符的优先级,表达式求值时,各种运算符的优先次序(由高至低)如下:1)括号内的表达式2)LENGTH,SIZE,WIDTH,MASK3)PTR,OFFSET,SEG,TYPE4)HIGH,LOW5) *,MOD,SHL,SHR6)十,一7)EQ,NE,LT,LE,GT,GE8)NOT9)AND10)OR,XOR。先级别相同时,按出现次序由左至右顺序计算。,4.4伪指令,4.4.1 符号定义伪指令 4.4.2 数据定义伪指令 4.4.3 段定义伪指令 4.4.4 其他伪指令,4.4.1 符号定义伪指令,1. EQU 等价伪指令 EQU伪指令用来定义一个符号,用该符

13、号代表机器指令助记符、伪指令助记符、寄存器名字、各种运算符号、常数等。,VAL EQU 100 JIA EQU ADD ADR EQU SI+BX+1000HMOV AL,VALJIA AL,10MOV ADR,AL,4.4.1 符号定义伪指令,2. = 等号伪指令 =伪指令用来定义一个符号,用该符号代表表达式、常数等。,VAL = 100MOV AL,VAL VAL = 200MOV AL,VAL VAL = VAL+10MOV AL,VAL,3.=伪指令与EQU伪指令的差别: =伪指令只能代表表达式或常数,不能是指令助记符等。 EQU定义的符号不能重定义,而=定义的可以。,4.4.2 数据

14、定义伪指令,数据定义伪指令用来定义一个存储单元的符号名, 并初始化该单元或由该单元开始的若干连续单元。 初始化单元就是将一个确定的数值或不确定的值(在定义语句中用?表示)放入指定的内存单元。 数据定义伪指令有五种: DB, DW, DD, DQ和DT。只介绍前三种。,1. 字节定义伪指令DB,000D 03 12 25 41 42 43 FIRST DB 3,18,25H,ABC 0013 2D 0C 1F 06 SECOND DB 3*15,48/4,36-5,26 MOD 10 0017 ? ? 36 FF 1E THIRD DB ?,?,36H,-1,36Q 001C 00051A FO

15、UTH DB 5 DUP (26) 0021 0002000204 0F 7F FIVET DB 2 DUP (2 DUP (4),15),7FH 0027 0003? SIXTH DB 3 DUP (?),2. 字定义伪指令DW,002E 1234 8000 5859 FSTW DW 1234H,-32768,XY 0034 1000 0046 FFE7 SCDW DW 256*16,46H,-25 003A ? 002E R 00FF TRDW DW ?,OFFSET FSTW,255 0040 00030510 FUTW DW 3 DUP (510H),3. 双字定义伪指令DD,0052

16、 FFFFFFFF00000080 DFST DD 4294967295,80000000H 005A 00801242008012C2 DSCD DD 36.625,-0.36625E+2 0062 0002FF030000 DTRD DD 2 DUP (1023) 006A 4E4D0000 DFUT DD MN 006E 0052 - R DFIV DD DFST,4.4.3. 段定义伪指令,1. 段首定义伪指令 SEGMENT 2. 段结束伪指令 ENDS 3. 段假定伪指令 ASSUME,CSEG SEGMENTASSUME CS:CSEG,DS:DSEGMOV AX,DSEGMOV

17、 AL,DATA1ADD AL,DATA2MOV SUM,ALHLT CSEG ENDS,参数: STACK,4.4.4 其他伪指令,1. EVEN 是程序计数器定位在偶地址单元。 2. .RADIX 改变默认进制。 3. NAME 为程序模块命名。 4. END 源程序结束。,4.5 汇编语言的上机过程,1. 汇编语言的工作环境编辑程序:EDIT NOTEBOOK汇编程序:MASM.EXE TASM.EXE连接程序:LINK.EXE TLINK.EXE调试程序:DEBUG.COM(EXE),EDIT,MASM,LINK,BEBUG,源程序,.ASM,.OBJ,.EXE或.COM,2. 上机过程,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 开发文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报