- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章汇编语言程序设计;主要内容;§4.1 汇编语言源程序;一、汇编语言源程序结构;1. 汇编语言源程序与汇编程序;2. 汇编语言程序设计与执行过程;3. 汇编语言源程序结构;一个完整源程序结构; CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:ESEG,SS:SSEG
START:MOV AX,DSEG
MOV DS,AX
MOV AX,ESEG
MOV ES,AX
MOV AX,SSEG
MOV SS,AX
┇
CSEG ENDS
END START;;;下面的语句说明程序中定义的各段分别用哪个段寄存器寻址
ASSUME CS:CSEG,DS:DSEG,ES:ESEG
START: MOV AX,DSEG ;START为程序开始执行的启动标号
MOV DS,AX ;初始化DS
MOV AX,ESEG
MOV ES,AX ;初始化ES
LEA SI,SUM ;存放结果的偏移地址送SI
MOV AX,DATA1 ;取被加数
ADD AX,DATA2 ;两数相加
MOV ES:[SI],AX ;和送附加段的SUM单元中
HLT
CSEG ENDS ;代码段结束
END START ;源程序结束
;二、汇编语言语句类型及格式;1. 汇编语言语句类型;2. 汇编语言语句格式;标号有三种属性:段、偏移量和类型。
① 标号的段属性是定义标号在程序段的段地址,当程序中引用一个标号时,该标号的段值应在CS寄存器中。
② 标号的偏移量属性表示标号所在段的起始地址到定义该标号的地址之间的字节数。偏移量是一个16位无符号数。
③ 标号的类型属性有两种:NEAR和FAR。前一种标号可以在段内被引用;后一种标号可以在其它段被引用。
;指示性语句格式;3. 操作数;常 量;变 量;*;表达式;算术运算和逻辑运算符;取值运算符;;取值运算符例;取值运算符例;属性运算符;其它运算符;*;§4.2 伪指令;伪指令;常用伪指令;一、数据定义伪指令;1. 数据定义伪指令助记符;数据定义伪指令例;数据定义伪指令例_变量在内存中的分布;数据定义伪指令的几点说明;2. 重复操作符;3. “?”的作用;数据定义伪指令例;数据定义伪指令例;二、符号定义伪指令;三、段定义伪指令;段定义伪指令格式;定位类型;组合类型;类别;段定义伪指令例;四、设定段寄存器伪指令;五、结束伪指令;六、过程定义伪指令;过程定义及调用例;七、宏命令伪指令;八、其它伪指令;;其它伪指令;§4.3 功能调用;DOS 功能调用;DOS 功能调用;DOS 功能调用;一、单字符输入;单字符输入例;二、字符串输入;1. 调用格式;2.键盘输入字符串(0A号调用);输入字符串程序段;输入缓冲区;三、单字符显示输出;单字符显示输出例;四、字符串输出显示;字符串输出显示例;格式:MOV AH,4CH
INT 21H
功能:终止当前程序并返回调用程序(操作系统)。;*;【例】编写程序完成从键盘上输入一字符串到输入缓冲区,然后将输入的字符串在显示器上以相反的顺序显示。 ;DATA SEGMENT
INFO1 DB 0DH,0AH,‘INPUT STRING:$’
INFO2 DB 0DH,0AH,‘OUTPUT STRING:$’
BUFA DB 81
DB ?
DB 80 DUP(0)
ORG $+10
BUFB DB 81 DUP(0)
DATA ENDS
;定义数据段,安排提示信息、输入输出数据区; LEA DX,INFO1
MOV AH,9
INT 21H ;9号功能调用,显示输入提示信息
LEA DX,BUFA ;输入字符串缓冲区首地址送DX
MOV AH,10 ;0AH号功能调用,功能号送AH寄存器
INT 21H ;§4.4源程序两种格式书写;;lt301a.asm(文件名)
.model small ;定义程序的存储模式
.stack ;定义堆栈段
.data ;定义数据段
string db ’Hello, Everybody !’,0dh,0ah,’$’
;在数据段定义要显示的字符串
.code ;定义代码段
.startup ;程序起始点,建立DS、SS
mov dx,of
文档评论(0)