- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 汇编语言程序设计;4.1 程序设计语言概述;4.1 程序设计语言概述;4.2.1 8086/8088汇编源程序结构;汇编语言的分段结构:
;4.2.2 8086/8088汇编语言语句的类型及格式;
DATA SEGMENT ;定义DATA段
BUF1 DB 34H ;定义第一个数据
BUF2 DB 2AH ;定义第二个数据
SUM DB ? ;定义数据和单元
DATA ENDS ;DATA结束
STACK SEGMENT PARA STACK ‘STACK’
;定义STACK段
DW 200 DUP(0)
STACK ENDS ; STACK段结束;CODE SEGMENT ;定义CODE段
ASSUME CS:CODE,DS:DATA,SS: STACK
;段分配
START:MOV AX,DATA
MOV DS,AX ;填装数据段寄存器DS
MOV AL,BUF1 ;取第一个加数
ADD AL,BUF2 ;和第二个加数相加
MOV SUM,AL
MOV AH,4CH
INT 21H ;返回DOS状态
CODE ENDS ;CODE段结束
END START ;整个源程序结束;;example2.asm(文件名)
stack segment stack ;定义堆栈段
dw 512 dup(?) ;堆栈段有512字空间
stack ends ;堆栈段结束
data segment ;定义数据段
string db ’Hello, Everybody !’,0dh,0ah,’$’
data ends
code segment ’code’ ;定义代码段
assume cs:code,ds:data,ss:stack;start: mov ax,data ;建立DS段地址
mov ds,ax
mov dx,offset string
mov ah,9
int 21h
mov ax,4c00h
int 21h ;利用功能调用返回DOS
code ends ;代码段结束
end start ;汇编结束,同时指明程序起始点;;名字由字母开头。
可由下列符号组成:
(1) 大小写英文字母(A~Z,a~z)
(2) 数字(0~9)
(3) 特殊符号(?、@、_等)
命名规则:
(1) 数字不能作为名字的第一个符号。
(2) 单独的问号(?)不能作为名字。
(3) 最大有效长度为31位。
(4) 汇编语言中有特定含义的保留字(如操作码、寄存器名等),不能作为名字使用。
(5)见名知义。如用BUFFER表示缓冲区、SUM表示累加和等。
;标号的三种属性;操作数:
用来指定参与操作的数据。
多于一个,之间用逗号分开。
可以是常数或表达式。;常量;变量;运算符及表达式;MOV AL,8 AND 4
MOV AL,8+4-1;若BUFFER存储区用如下伪指令定义:
BUFFER DW 200 DUP(0)
则:
TYPE BUFFER 等于2
LENGTH BUFFER 等于200
SIZE BUFFER 等于400; 用于指定其后存储器操作数的类型
运算符:PTR 、THIS
例:
MOV BYT
原创力文档


文档评论(0)