- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术;第三章 汇编语言程序设计;.ASM;用户编写程序,程序在计算机中运行,计算机的控制由操作系统交给用户程序,运行用户程序,当用户程序运行结束后,应再将控制权交回操作系统,所以,在程序中应该有返回DOS的指令。在计算机中,返回DOS的指令是操作系统中的一个子程序,用户使用时应调用这个子程序。;每当一个用户的可执行文件.EXE装入内存后,存储器的分配情况如图:;系统占用;如何使用户程序执行完后返回来执行这条指令?;返回操作系统的另一个办法是用系统调用中断指令: INT 21H, 在用户程序结束时,用下面两条指令:
MOV AH, 4CH
INT 21H
这两条指令经常用在短的程序段中,即用户程序并不是一个完整的汇编程序,而只是由一些指令组成的、没有堆栈区或数据区的程序段。;第一节 伪指令;伪指令:伪指令不是处理器运行的指令,而是程序员给汇编编译程序下达的命令。是在编译源程序期间由汇编编译程序执行的命令。;一、段定义;段名必须是合法是标识符。;每16个地址为一段(PARA),每段的起始地址为二进制:
**** **** **** **** 0000
16进制:****0H
;每2个地址为一个字(WORD),每个字的起始地址为偶数;
最基本的类型是字节(BYTE),字节只包含一个地址,可以是内存的任何空间。;BYTE: 表示本段起始单元可以从任一地址开始;
WORD: 表示本段起始单元从一个偶地址开始;
PARA: 表示本段起始单元从一个段的边界开始(默认);
PAGE: 表示本段起始单元从一个页的边界开始。;组合类型;COMMON: 表示产生一个覆盖段。连接时,把本段与其他也用COMMON说明的同名段置成相同的起始地址,重叠在一起,共享相同的存储区,其段长度由最长的段确定。;MEMORY: 表示本段在存储器中应定位在所有其他段的最高地址。;例如:定义堆栈段如下:
ST SEGMENT PARA STACK ‘STACK’
DB 100 DUP(?)
ST ENDS;连接两个汇编语言目标程序时,它们的数据段同名,组合类型为PUBLIC,定位类型为PARA。连接后第一个目标程序的数据段的起始物理地址是01010H,长度为17AH,则第二个目标程序数据段的起始物理地址为多少?;现有汇编目标程序A和B,它们的数据段类别名相同??组合类型皆为COMMON,若A程序数据段中有字符串‘ABC’,B程序数据段中有字符‘DEF’,则执行连接操作 LINK A+B 后,产生目标程序的数据段中偏移地址为0000H单元的内容是什么?;二、过程定义;过程名1 PROC FAR
……
RET
过程名1 ENDP;例:延时100ms的子程序,编程如下:;三、段寻址;;四、结束语句 END;五、ORG;六、完整结构; PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATA
MOV DS, AX;第二节 数据定义;一、常量、变量及标识符;每个变量都有三个属性;DATA SETMENT
X DB 5, 4
Y DW 40H
Z DD 2030H
DATA ENDS;标识符:给指令或某一存储单元地址所起的名字。
标识符由下列字符组成:
字母: A~Z, a~z; 数字: 0~9; 特殊字符: ? . @ _ $;标号:代码段中某一条指令的地址。;二、数据定义伪操作;DD: 定义双字,其后每个操作数占4个字节;;DATA1 DB 100 DUP(‘AB’);三、等值伪操作;DATA SEGMENT
A DW 3
B DW 4
L EQU B-A
DATA ENDS;DATA SEGMENT
A DW 3, 7
B DW 14
L EQU B
X DW B
Y EQU B-A
DATA ENDS;第三节 汇编语言运算符;汇编语言运算符:是编译程序在编译时计算的,与运算指令不同,指令是在程序运行时计算的。
一、算术运算符
+,-,*, /
文档评论(0)