- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 汇编语言与汇编程序
§ 2.1 机器语言与汇编语言
一.机器语言——机器只能识别二进制编码
机器指令——机器能直接执行的一组二进制代码(命令)——该二进制代码称为机器码(Machine Code).
如: 40H(INC AX 01D8H(ADD AX,BX
指令通常由两部分组成:操作码和操作数
操作码——该指令的功能,即执行什么操作。
操作数——指令操作对象,指明参加操作的数或操作数的地址。
机器指令的集合( 机器语言( 用机器语言编写的程序 ( 机器语言程序
二、汇编语言
机器语言编写程序烦琐,难记忆,不易理解,易出错。用一些助记符来表示指令的操作码,操作数亦用一些符号来表示(符号指令。
如上:40H(INC AX 01D8H(ADD AX, BX
符号指令与机器指令一一对应。
符号指令的集合(符号语言,又称汇编语言(用汇编语言编写的程序(汇编语言程序(不能由计算机直接执行,必须将它翻译成机器语言程序(翻译过程称汇编(翻译程序为汇编程序。
汇编语言源程序 ( 汇编 ( 目标程序
三、宏汇编程序(MASM
允许把一串指令定义为一条宏指令,有宏汇编功能。如MASM(系统程序。宏汇编语言有三类基本指令:符号指令,伪指令,宏指令。
§2.2 常用伪指令与常用算符
每一种计算机语言都规定了自己的符号系统及语法规则。汇编语言也是如此,除符号指令外,还必须正确使用各种符号。汇编中的各种符号由伪指令定义,或为汇编的保留字。
一、汇编语言源程序结构——单模块程序结构
参见教材P、60 一般 程序由三个段组成。教材中程序的小写字母部分均为程序结构。
STACK SEGMENT STACK DW 32 DUP(?)STACK ENDSDATA SEGMENT :DATA ENDSCODE SEGMENTBEGIN PROC FAR ASSUME CS:CODE,SS:STACK,DS:DATA PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX : RETBEGIN ENDPCODE ENDS END BEGIN
因为连接程序为每一个用户程序建立了一个
程序段前缀PSP,在PSP的开始处安排了一条
INT 20H指令,执行该指令结束当前程序返回
调用程序。
而PSP的地址,其段地址寄存在DS和ES中; 偏移地址为0,将DS:0000地址进栈,即PSP地址进栈。
PSP的长度为256个字节,即100H个单元,主要存放了装入程序与DOS连接的信息。
结束用户程序返回DOS有两种方法:
其一:MOV AH ,4CH ;返回DOS
INT 21H
其二:INT 20H ;返回调用程序,便于调试它的机器码是CD20H,当用DEBUG调用EXE文件时,在DS:0000单元中便可看到该指令。
DOS在转移控制权时,将CS指向EXE程序的代码段,SS指向堆栈段,但DS和ES并不指向用户程序的数据段和附加数据段,而是指向PSP。
二 、 常用伪指令(P58)
伪指令不产生机器代码,CPU也不会产生某种操作,它主要告诉汇编程序哪些是数据,哪些是指令,符号约定,程序从何处开始,何处结束,即为汇编控制命令。
伪指令很多,下面主要介绍段定义,过程定义。
1、段定义伪指令(定义一个存储段,一个程序模块可由若干段组成。
格式:
〈段名〉 SEGMENT [定位方式][组合方式][‘类别名’]
…… 伪指令或指令
〈段名〉 ENDS
功能: 定义一个以“段名”为名称的存储段。
定位方式,组合方式,‘类别名’(赋给段名的属性,三个可选项主要用于多模块化程序设计,以告诉LINK程序各模块间段如何定位,段与段如何组合,还可连接在
文档评论(0)