- 7
- 0
- 约2.5千字
- 约 50页
- 2017-04-22 发布于湖北
- 举报
第四章 汇编语言程序设计;第4章 汇编语言程序设计;4.1 汇编语言源程序;汇编语言源程序
汇编程序;4.1.1 汇编语言源程序的结构; name length_of_string
data segment
string db ‘abcduvwxyz’,0dh ;0DH为回车(CR)
cr equ 0dh
data ends
stack segment para stack’stack’
db 100 dup(?)
stack ends
code segment
assume cs:code,ds:data, ss:stack,es:data
start proc far
begin: push ds ;DS中包含程序段前缀起始地址
mov ax, 0
push ax
……
start endp
code ends
end begin;常用的术语;1. 汇编语言语句类型;指令语句;伪指令语句;1.常 量;*;3.变 量;变量和标号;【例】
ARRAY DW 12H,13H,14H
XT DW ?
MOV CX, (XT-ARRAY)/2
因XT与ARRAY是顺序存放, (XT-ARRAY)/2
即为数组字长度数
;4 表达式;1)算术运算符;[例];2)逻辑运算符;[例]; [例];3)关系运算符;4)取值运算符和属性运算符;SEG和OFFSET;例:DATA-SEG 是从存储器0500H处开始的一个数据段。OP1是其中一个变量名,偏移地址为1000H。
MOV AX, SEG OP1
MOV BX, OFFSET OP1
则 (AX)=0500H, (BX)=1000H;属性运算符 PTR;例:;方括号[ ]。
指令中用方括号表示存储器操作数,方括号里的内容表示操作数的偏移地址。
段重设运算符“:”。
运算符“:”跟在某个段寄存器名(DS、ES、SS)之后表示段重设。
MOV AX, ES:[DI];4.2 指示性(伪指令)语句;伪指令的类型;4.2.1 数据定义伪指令;*;*;*;*;数据定义伪指令例:
数据段起始
M1 DW 10H,20H
M2 DB 11H,’Hello!’
数据段结束;4.2.2 符号定义伪指令;
[2]等号伪指令
语句格式如下:
符号名=表达式
可以对符号再定义
例:EMP=6
EMP=7
EMP=EMP+1;数据的初始值确定;SEGMENT/ENDS
段定义伪指令的功能就是把源程序划分为逻辑段,便于汇编程序在相应段名下生成目标码,同时也便于连接程序组合、定位、生成可执行的目标程序。利用段定义伪指令可以定义一个逻辑段的名称和范围,其指令格式如下:
段名 SEGMENT
······ (本段语句序列)
······ ······
······ (本段语句序列)
段名 ENDS; 4.2.4 设定段寄存器伪指令ASSUME
设定段寄存器伪指令ASSUME,一般出现在代码段中,它用来告诉汇编程序由 SEGMENT/ENDS伪指令定义的段和段寄存器的对应关系,即设定已定义段各自属于哪个段寄存器。其指令格式为:
ASSUME 段寄存器名:段名 , [段寄存器名:段名]
段寄存器名是CS、DS、SS或ES,段名必须是由SEGMENT/ENDS定义过的段名。
应当注意:使用ASSUME伪指令,仅仅告诉汇编程序,关于段寄存器与定义段之应关系。但它并不意味着汇编后这些段地址已装入了相应的段寄存器中,这些段地址的真正装入,仍需要用程序来送入,且这4个段寄存器的装入略有不同。;设置起始地址伪指令ORG
ORG伪指令用来指出其后的程序段或数据块的起始地址的偏移量。
其指令格式为:
ORG 表达式
例:ORG 0003H
汇编程序把语句中表达式之值作为
您可能关注的文档
最近下载
- 《合肥市新场景规模化应用示范行动方案(2025—2027年)》.pdf
- 标准化审查报告.doc VIP
- (新版)初级民航安全检查员资格考试题库大全-上(单选题汇总) .pdf VIP
- 2023初中毕业上卫校要多少分分数很高吗 .pdf VIP
- (新版)初级民航安全检查员资格考试题库大全-下(多选、判断题汇总).docx VIP
- H3C认证GB0-510 H3CNE-Security网络安全工程师考试题库及答案.docx VIP
- 索尼SW7600GR中文说明书.pdf
- 华三认证考试H3CNE安全 GB0-510 安全工程师考试题库(含答案).docx VIP
- 钢结构厂房水电安装施工组织方案.docx VIP
- 第1课+おじぎ+课文注音讲义 高中日语人教版第一册.docx VIP
原创力文档

文档评论(0)