x86汇编语言程序设计.ppt
《x86汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《x86汇编语言程序设计.ppt(115页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、现代微机原理与接口技术现代微机原理与接口技术http:/http:/第第3章章 80 x86汇编语言程序设计汇编语言程序设计(下下)1现代微机原理与接口技术现代微机原理与接口技术http:/http:/3.3 汇编语言格式汇编语言格式n汇编语言源程序结构汇编语言源程序结构n汇编语言上机过程汇编语言上机过程n汇编语言语句格式汇编语言语句格式n伪操作(伪指令)伪操作(伪指令)2现代微机原理与接口技术现代微机原理与接口技术http:/http:/数据段数据段 说明:说明:堆栈段堆栈段 1、各段顺序无关、各段顺序无关 2、除代码段外,可缺省、除代码段外,可缺省 3、可有若干个数据段,、可有若干个数据段
2、,若干代码段若干代码段 代码段代码段 END 标号标号 附加段附加段3.3.1 源程序结构概览源程序结构概览3现代微机原理与接口技术现代微机原理与接口技术http:/http:/汇编语言程序例汇编语言程序例DATA SEGMENTDATA SEGMENT BUF1 DB 34H BUF1 DB 34H BUF2 DB 2AH BUF2 DB 2AH SUM DB?SUM DB?DATA ENDSDATA ENDSCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA ASSUME CS:CODE,DS:DATA START:MOV AX,DATASTAR
3、T:MOV AX,DATA MOV DS,AX MOV DS,AX MOV AL,BUF1 MOV AL,BUF1 ADD AL,BUF2 ADD AL,BUF2 MOV SUM,AL MOV SUM,AL MOV AH,4CH MOV AH,4CH INT 21H INT 21HCODE ENDSCODE ENDS END START END START4现代微机原理与接口技术现代微机原理与接口技术http:/http:/3.3.2 汇编语言源程序上机过程汇编语言源程序上机过程源程序源程序.asm汇编汇编masm目标程序目标程序 .obj连接连接link结果结果debugDOS下执行下执行执
4、行执行可执行程序可执行程序 .exe5现代微机原理与接口技术现代微机原理与接口技术http:/http:/有三类语句:有三类语句:指令语句指令语句指令语句指令语句完成操作功能,能翻译成机器代码完成操作功能,能翻译成机器代码伪指令语句伪指令语句伪指令语句伪指令语句为汇编程序在翻译源程序时提供为汇编程序在翻译源程序时提供 有关信息有关信息 宏指令语句宏指令语句宏指令语句宏指令语句由若干条指令语句组成的语句由若干条指令语句组成的语句通用语句格式:通用语句格式:通用语句格式:通用语句格式:名字名字名字名字 操作项操作项操作项操作项 操作数操作数操作数操作数 ;注释;注释;注释;注释 3.3.3 汇编语
5、言语句格式汇编语言语句格式6现代微机原理与接口技术现代微机原理与接口技术http:/http:/指令语句格式指令语句格式 标号标号标号标号:指令助记符指令助记符指令助记符指令助记符 目的操作数目的操作数目的操作数目的操作数,源操作数源操作数源操作数源操作数;注注注注释释释释 其中其中,表示可选项表示可选项;1、标号标号标号标号 标号是后续指令的符号名称,可用符号是:标号是后续指令的符号名称,可用符号是:字母:字母:A-Z,a-z 数字符:数字符:0-9 专用字符:专用字符:?,_,$标号长度不超过标号长度不超过31个字符个字符2、指令助记符指令助记符指令助记符指令助记符 指令助记符是汇编指令的
6、符号代码,不可缺省。指令助记符是汇编指令的符号代码,不可缺省。汇编源程序时汇编源程序时,系统使用内部对照表将每条指令的系统使用内部对照表将每条指令的助记符译成相应的机器码。助记符译成相应的机器码。7现代微机原理与接口技术现代微机原理与接口技术http:/http:/3、目的操作数目的操作数目的操作数目的操作数 1)参与指令操作)参与指令操作 2)暂存操作结果)暂存操作结果 除立即寻址方式外,其他寻址方式均适用于目的操作数除立即寻址方式外,其他寻址方式均适用于目的操作数.4、源操作数源操作数源操作数源操作数 提供原始数据或操作对象,面向所有寻址方式提供原始数据或操作对象,面向所有寻址方式5、注释
7、注释注释注释 注释在系统汇编时并不产生机器码注释在系统汇编时并不产生机器码 注释可以放在指令语句尾,也可单独使用注释可以放在指令语句尾,也可单独使用 注释前面的注释前面的“;”不可缺少不可缺少 8现代微机原理与接口技术现代微机原理与接口技术http:/http:/常量常量常量有两种:常量有两种:1、数值常量数值常量数值常量数值常量 二进制数二进制数 以以B结尾,如结尾,如01011101B 八进制数八进制数 以以Q结尾,如结尾,如235Q 十进制数十进制数 以以D结尾或没有结尾字母,如结尾或没有结尾字母,如98D或或98 十六进制数十六进制数 以以H结尾,如结尾,如5BH2、字符串常量字符串常
8、量字符串常量字符串常量 用单引号括起来的一个或多个字符,如用单引号括起来的一个或多个字符,如A、AB 字符用字符用ASCII码形式存储码形式存储常量的应用常量的应用常量的应用常量的应用:(1)在指令语句中作立即数在指令语句中作立即数 MOV CX,100100(2)在指令语句中作位移量在指令语句中作位移量 MOV AX,3434SI(3)在数据定义语句中作初值在数据定义语句中作初值 X DB 12H,34H12H,34H9现代微机原理与接口技术现代微机原理与接口技术http:/http:/变量和标号变量和标号变量变量变量变量有三种属性:有三种属性:1、段属性段属性段属性段属性变量所在段的起始地
9、址变量所在段的起始地址2、偏移属性偏移属性偏移属性偏移属性从段起始地址到定义变量的位置之从段起始地址到定义变量的位置之间的字节数间的字节数3、类型属性类型属性类型属性类型属性该变量所保留的字节数该变量所保留的字节数 DB 1个字节个字节 DW 2 个字节个字节 DD 4个字节个字节 DQ 8个字节个字节 DT 10个字节个字节10现代微机原理与接口技术现代微机原理与接口技术http:/http:/标号标号标号标号也有三种属性:也有三种属性:1、段属性段属性段属性段属性定义标号所在段的起始地址定义标号所在段的起始地址2、偏移属性偏移属性偏移属性偏移属性从段起始地址到定义标号的位置之从段起始地址到
10、定义标号的位置之间的字节数间的字节数3、类型属性类型属性类型属性类型属性表示它的转移特性表示它的转移特性 NEAR(近)(近)段内转移段内转移 FAR (远)(远)段间转移段间转移11现代微机原理与接口技术现代微机原理与接口技术http:/http:/处理器选择伪指令处理器选择伪指令 数据定义和存储器分配伪指令数据定义和存储器分配伪指令 段定义伪指令段定义伪指令 程序开始和结束伪指令程序开始和结束伪指令 表达式赋值伪指令表达式赋值伪指令 地址计数器与对准伪指令地址计数器与对准伪指令 基数控制伪指令基数控制伪指令3.3.4 伪指令伪指令12现代微机原理与接口技术现代微机原理与接口技术http:/
11、http:/(一)(一)处理器处理器处理器处理器选择伪指令选择伪指令.8086 .8086 可使用可使用可使用可使用80868086指令(一般不用写)指令(一般不用写)指令(一般不用写)指令(一般不用写).286 .286 可使用可使用可使用可使用8028680286指令指令指令指令.286P .286P 可使用保护方式下的可使用保护方式下的可使用保护方式下的可使用保护方式下的8028680286指令指令指令指令.386.386 可使用可使用可使用可使用8038680386指令指令指令指令.386P.386P 可使用保护方式下的可使用保护方式下的可使用保护方式下的可使用保护方式下的803868
12、0386指令指令指令指令.486.486 可使用可使用可使用可使用8048680486指令指令指令指令.486P.486P 可使用保护方式下的可使用保护方式下的可使用保护方式下的可使用保护方式下的8048680486指令指令指令指令.586.586 可使用可使用可使用可使用PentiumPentium指令指令指令指令.586P.586P 可使用保护方式下可使用保护方式下可使用保护方式下可使用保护方式下PentiumPentium的指令的指令的指令的指令.686.686 可使用可使用可使用可使用Pentium ProPentium Pro指令指令指令指令.686P.686P 可使用保护方式下可使
13、用保护方式下可使用保护方式下可使用保护方式下Pentium ProPentium Pro的指令的指令的指令的指令.MMX .MMX 可使用可使用可使用可使用MMXMMX指令指令指令指令.XMM .XMM 可使用可使用可使用可使用SSESSE指令指令指令指令当源程序使用了当源程序使用了286及以上的机型新增加的指令时,及以上的机型新增加的指令时,应该在程序开始使用相应的处理器选择伪指令。应该在程序开始使用相应的处理器选择伪指令。13现代微机原理与接口技术现代微机原理与接口技术http:/http:/(二)数据定义伪指令(二)数据定义伪指令格式:格式:格式:格式:变量名变量名变量名变量名 定义符定
14、义符定义符定义符 操作数项表操作数项表操作数项表操作数项表操作:为变量分配存储单元并将初值置入相应单元中操作:为变量分配存储单元并将初值置入相应单元中操作:为变量分配存储单元并将初值置入相应单元中操作:为变量分配存储单元并将初值置入相应单元中操作数项可为:操作数项可为:1 1、常数或表达式、常数或表达式、常数或表达式、常数或表达式 2 2、字符串、字符串、字符串、字符串 3 3、?表达式、?表达式、?表达式、?表达式 4 4、带、带、带、带DUP DUP 的表达式的表达式的表达式的表达式定义符可为:定义符可为:DB 定义字节定义字节 DW 定义字(定义字(2个字节)个字节)DD定义双字(定义双
15、字(4个字节)个字节)DF定义六字节定义六字节 DQ定义八字节定义八字节 DT定义十字节定义十字节操作数项表:操作数项表:操作数项操作数项,操作数项操作数项,操作数项操作数项14现代微机原理与接口技术现代微机原理与接口技术http:/http:/操作数是常数或表达式操作数是常数或表达式操作数是常数或表达式操作数是常数或表达式 X1 DB 40H ;为;为X1分配分配1个字节,初值个字节,初值40H X2 DW 250*250;为;为X2分配分配2个字节,初值个字节,初值62500 X3 DD 10203040H ;为;为X3分配分配4个字节,初值为个字节,初值为10203040H X4 DQ(
16、120+50)/10;为;为X4分配分配8个字节,初值个字节,初值17 X5 DB 10,20,30 ;多项定义,;多项定义,X5被分配被分配3个字节,个字节,初值分别为初值分别为10,20,30,地址,地址从低到高,各个值间用逗号分从低到高,各个值间用逗号分开开 15现代微机原理与接口技术现代微机原理与接口技术http:/http:/操作数为字符串操作数为字符串操作数为字符串操作数为字符串 STRING1 DB HELLO STRING2 DB H,E,L,L,O 字符串用字符串用字符串用字符串用DBDB定义,被定义串以单引号括起来定义,被定义串以单引号括起来定义,被定义串以单引号括起来定义
17、,被定义串以单引号括起来 串中可包含数字符、大小写英文字母、回车符、串中可包含数字符、大小写英文字母、回车符、换换行符、行符、空格、?、空格、?、$、下划线、下划线_等等 字符串以字符串以ASCII码形式存储在存储单元中。码形式存储在存储单元中。STRING1 H STRING1 H +1 E +1 E +2 L +2 L +3 L +3 L +4 O +4 O16现代微机原理与接口技术现代微机原理与接口技术http:/http:/区分区分区分区分 S1 DB AB S1 DB AB 与与与与 S2 DW AB S2 DW AB 它们的存储情况为:它们的存储情况为:S1 S2 A B B A操
18、作数项为操作数项为操作数项为操作数项为?用于预留空间,不置初值用于预留空间,不置初值 Y1 DB 20H,?;定义;定义2个字节,其中预留个字节,其中预留1个字节个字节 Y2 DW?,?;预留;预留2个字个字 Y3 DD?;预留;预留4个字节个字节 Y4 DQ?;预留;预留8个字节个字节 Y5 DT?;预留;预留10个字节个字节17现代微机原理与接口技术现代微机原理与接口技术http:/http:/操作数项带重复定义符操作数项带重复定义符操作数项带重复定义符操作数项带重复定义符DUPDUP 格式:格式:N DUPN DUP(操作数项表)(操作数项表)(操作数项表)(操作数项表)操作:以操作:以
19、N所示次数定义操作数项表内容所示次数定义操作数项表内容 VAR1 DW 2 DUP(2,4),1476H VAR2 DB 2 DUP(?,2 DUP(A,B)存储情况为:存储情况为:VAR1 02H VAR2?00H A 04H B 00H A 02H B 00H?04H A 00H B 76H A 14H B18现代微机原理与接口技术现代微机原理与接口技术http:/http:/操作数运算符操作数运算符n算术运算符算术运算符n逻辑运算符逻辑运算符n关系运算符关系运算符n数值回送运算符数值回送运算符n属性运算符属性运算符n运算符优先级运算符优先级19现代微机原理与接口技术现代微机原理与接口技术
20、http:/http:/算术运算符算术运算符算术运算符算术运算符(单目单目单目单目+,+,单目单目单目单目-,+,-,*,/,MOD)-,+,-,*,/,MOD)运算符运算符 格格 式式 运运 算算 +表达式表达式 取表达式正值取表达式正值 -表达式表达式 取表达式负值取表达式负值 +表达式表达式1+表达式表达式2 求表达式求表达式1、表达式、表达式2之和之和 -表达式表达式1-表达式表达式2 求表达式求表达式1、表达式、表达式2之差之差 *表达式表达式1*表达式表达式2 表达式表达式1、表达式、表达式2之积之积 /表达式表达式1/表达式表达式2 表达式表达式1、表达式、表达式2之商之商 MO
21、D 表达式表达式1 MOD 表达式表达式2 取余数取余数 说明:说明:1、算术运算符可用于数值表达式或地址表达式、算术运算符可用于数值表达式或地址表达式2、用于地址表达式时,只有其结果有物理意义时才有效、用于地址表达式时,只有其结果有物理意义时才有效 常用的是:常用的是:地址地址地址地址+数字常量数字常量数字常量数字常量 地址地址地址地址-数字常量数字常量数字常量数字常量20现代微机原理与接口技术现代微机原理与接口技术http:/http:/算术运算符示例算术运算符示例(1)MOV AL,20+30 ;50-AL MOV BH,100-2 ;98-BH MOV CX,50/2 ;25-CX M
22、OV AL,80 MOD 15 ;5-AL(3)设数据定义如下:设数据定义如下:ARRAYA DW 1,2,3,4,5,6,7 WENDA DW?将数组长度(字数)存入将数组长度(字数)存入CX:MOV CX,(WENDA-ARRAYA)/2 ;地址地址地址地址-地址,结果为一常量地址,结果为一常量地址,结果为一常量地址,结果为一常量(2)将首地址为将首地址为BLOCK的字数组的第的字数组的第6个字传送到个字传送到DX:MOV DX,BLOCK+(6-1)*2 ;地址地址地址地址+常量,结果仍为一地址值常量,结果仍为一地址值常量,结果仍为一地址值常量,结果仍为一地址值21现代微机原理与接口技术
23、现代微机原理与接口技术http:/http:/逻辑运算符逻辑运算符逻辑运算符逻辑运算符(NOT,AND,OR,XOR)(NOT,AND,OR,XOR)运算符运算符 格格 式式 运运 算算 NOT NOT 表达式表达式 按位取反按位取反 AND 表达式表达式1 AND 表达式表达式2 按位按位“与与”运算运算 OR 表达式表达式1 OR 表达式表达式2 按位按位“或或”运算运算 XOR 表达式表达式1 XOR 表达式表达式2 按位按位“异或异或”运算运算 逻辑运算符和逻辑运算指令的区别:逻辑运算符和逻辑运算指令的区别:逻辑运算符和逻辑运算指令的区别:逻辑运算符和逻辑运算指令的区别:逻辑运算指令逻
24、辑运算指令 逻辑运算符逻辑运算符出现在语句的位置出现在语句的位置 指令助记符指令助记符 操作数字段操作数字段操作对象操作对象 可以是寄存器或可以是寄存器或 只能是整型常数只能是整型常数 存储器操作数存储器操作数何时计算何时计算 程序运行时程序运行时 源程序汇编时源程序汇编时22现代微机原理与接口技术现代微机原理与接口技术http:/http:/关系运算符关系运算符关系运算符关系运算符(EQ,NE,LT,LE,GT,GE)(EQ,NE,LT,LE,GT,GE)运算符运算符 格格 式式 运运 算算 EQ 表达式表达式1 EQ 表达式表达式2 表达式表达式1=表达式表达式2为真为真 NE 表达式表达
25、式1 NE 表达式表达式2 表达式表达式1表达式表达式2为真为真 LT 表达式表达式1 LT 表达式表达式2 表达式表达式1表达式表达式2为真为真 LE 表达式表达式1 LE 表达式表达式2 表达式表达式1表达式表达式2为真为真 GE 表达式表达式1 GE 表达式表达式2 表达式表达式1=表达式表达式2为真为真 关系运算符的两个操作数必须关系运算符的两个操作数必须都是常量或同一段内的都是常量或同一段内的都是常量或同一段内的都是常量或同一段内的符号地址符号地址符号地址符号地址,比较结果为逻辑值:,比较结果为逻辑值:如果关系成立,则返如果关系成立,则返如果关系成立,则返如果关系成立,则返回回回回0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- x86 汇编语言 程序设计
限制150内