教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

04 汇编语言程序设计

来源:网络收集 时间:2026-07-27
导读: 第四章 80x86汇编语言程序设计 第一节第二节第三节第四节第五节第六节 汇编语言概述汇编语言语句的组成汇编语言的语句宏汇编指令编写完整的汇编语言程序汇编语言程序设计 第一节 汇编语言概述 一个简单的8086系统下的汇编语言程序:数 DATA SEGMENT据 STRING

第四章 80x86汇编语言程序设计

第一节第二节第三节第四节第五节第六节

汇编语言概述汇编语言语句的组成汇编语言的语句宏汇编指令编写完整的汇编语言程序汇编语言程序设计

第一节

汇编语言概述

一个简单的8086系统下的汇编语言程序:数 DATA SEGMENT据 STRING DB‘HELLO WORLD!’, 0DH, 0AH,‘$’段DATA CODE

代码段

ENDS SEGMENT ASSUMECS:CODE, DS:DATA BEGIN: MOV AX, DATA MOV DS, AX;初始化数据段的段地址 MOV AH, 09H LEA DX, STRING;输出字符串 INT 21H MOV AH, 4CH INT 21H;调用4CH号系统功能返回DOS CODE ENDS END BEGIN

第二节汇编语言语句的组成汇编语言程序的语句中包含的元素:字符集保留字与标识符常量、变量与标号表达式及运算符

一、字符集允许使用的字符:字母,包括大写字母A~Z和小写字母a~z;数字,包括0~9;特殊字符,包括:+ - */=()[]<>;,‘“ .—:?@$&及空格、制表符、回车、换行等。注意:除了字符串,字母都是不区分大小写一系列相连的空格、制表符效果相当于一个空格一系列相连的回车换行相当于一次回车换行分号“;”后一直到行尾的内容都是注释字符“&”若用于某行的开头,则表示该行是上一行的续行

二、保留字与标识符1、保留字在汇编语言中有特定意义的词,可分为:指令助记符及指令前缀如:MOV、ADD、REP等寄存器名如:AX、EBX、CL等伪指令助记符如: DB、SEGMENT等其他保留字,包括运算符、操作符等如: EQ、LT、OFFSET、SEG等

2、标识符标识符是程序员自己起的名字,如变量名、标号、段名、过程名等标识符的命名规则:标识符必须由字母、数字和几个特殊字符(包括 _@$?:)组成,而且第一个字符不能是数字(否则可能与16进制的数字混淆)标识符不能与某个保留字相同,以免混淆尽量用有意义的英文单词或缩写来命名,以增加程序的可读性

三、常量、变量与标号1、常量数字常量二进制:以B结尾,如10101010B八进制:以Q结尾,如123Q,67Q十进制:以D结尾,“D”可省略,如1234D,5678十六进制:以H结尾,A~F开头的数须在前面加“0”如:1234H,0FFFFH字符串常量用单引号或双引号引起来的一个或多个ASCII字符每个字符的值等于其ASCII码值例:‘A’=41H一个字节,‘12’=31H、32H两个字节

2、变量变量是存放在存储器中的操作数可通过变量的名字来访问变量变量具有三个属性:段属性,即变量所在的段的基地址;偏移量属性,即变量相对于段的起始地址的偏移量;类型属性,包括BYTE(字节)、WORD(字)、DWORD (双字)、FWORD(6字节)、QWORD(四字)、TBYTE (10字节)等。

3、标号

标号是一条指令性语句的起始地址变量具有三个属性:段属性,即变量所在的段的基地址;偏移量属性,即变量相对于段的起始地址的偏移量;类型属性,包括NEAR(近程,即段内)、FAR(远程,即段间)

四、表达式及运算符由常量、变量、标号和一些运算符、操作符构成的式子表达式的值在汇编的过程中就已经被汇编程序计算出来运算符的分类:算术运算符逻辑运算符关系运算符属性运算符数值返回操作符

1、算术运算符五种算术运算:加:+、减:-、乘:*、除:/、模:MOD

合法地址表达式:地址-地址(处在同个段中);地址±常数ADDR1-ADDR2(假设两个地址处在同个段中) ADDR1+1 ADDR2-2

非法地址表达式:地址+地址;地址*地址;地址/地址;常量地址;地址-地址(处在不同段中)ADDR1+ADDR2 ADDR1*ADDR2 ADDR1/2 100-ADDR1 SEG1_A-SEG2_B (假设两个地址处在不同段中)

2、逻辑运算符五种算术运算:与AND、或OR、异或XOR、非NOT、逻辑左移SHL、逻辑右移SHR

只用于数字表达式中例:MOV MOV MOV MOV AL,10101010B AND 11001100B;AL←10001000B AL,10001000B OR 01000100B;AL←11001100B AX,1000100010001000B XOR 1100110011001100B;AX←0100010001000100B AX,NOT 1010101010101010B;AX←0101010101010101B

3、关系运算符六种关系运算符: EQ(Equal,相等) NE(Not Equal,不等) LT(Less Than,小于) LE(Less than or Equal,小于或等于) GT(Great Than,大于) GE(Great than or Equal,大于或等于)运算结果:关系为真,则运算结果为0FFFFH关系为假,则运算结果为0

4、属性运算符

(1)型重新指定操作符PTR功能:临时指定或修改存储器操作数的数据类型属性或地址类型属性

格式:类型 PTR表达式例: VAR_W DW 1234H MOV AX,VAR_W;AX←1234H MOV AL,BYTE PTR VAR_W;AL←34H

PTR与EQU连用作用:定义与表达式类型不同的新变量名或新标号,但不分配新的存储单元例: 数据段定义:DATA_B DATA_W

DB 1,2,3,4 EQU WORD PTR DATA_B

代码段:MOV AL,DATA_B MOV AX,WORD PTR DATA_B MOV AX,DATA_W (第2、3条指令等价);AL←1;AL←0201H;AL←0201H

(2)类型指定操作符THIS功能:指定或说明变量或标号的类型例1:DATA_W DATA_B MOV MOV MOV EQU THIS WORD DB 1,2,3,4 AL,DATA_B AX,WORD PTR DATA_B AX,DATA_W

;AL←1;AL←0201H;AL←0201H

例2:ADDR_F ADDR_N: EQU THIS FAR MOV AX,1 JMP ADDR_F;等价于:JMP

FAR PTR ADDR_N

(3)短转移操作符SHORT

功能:一般用在JMP指令

告诉汇编程序该JMP指令是一个短程转移指令例:JMP…… LAB:…… SHORT LAB

5、数值返回操作符

(1)SEG、OFFSET功能: SEG操作符用于求一个标号或变量所在段的基地址 OFFSET操作符则

用于求标号或变量在段中的地址偏移量例如,对于代码段中的一条指令: 2000H:1234H ADDR: INC CX;段地址=2000H,偏移量=1234H则有: MOV AX,SEG ADDR;AX←2000H MOV AX,OFFSET ADDR;AX←1234H;与指令“LEA AX,ADDR”等价

…… 此处隐藏:1268字,全部文档内容请下载后查看。喜欢就下载吧 ……
04 汇编语言程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/128340.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)