1. 首页
  2. 文档大全

汇编语言第三章汇编

上传者:2****5 2022-06-15 11:24:28上传 PPT文件 566.50KB
汇编语言第三章汇编_第1页 汇编语言第三章汇编_第2页 汇编语言第三章汇编_第3页

《汇编语言第三章汇编》由会员分享,可在线阅读,更多相关《汇编语言第三章汇编(59页珍藏版)》请在文档大全上搜索。

1、汇编语言的要素汇编语言的要素Chap3 Elements of Assembly Language2上章回顾上章回顾nHardwareMemory & memory address CPU registersChap3 Elements of Assembly Language3本章内容本章内容n汇编语言汇编语言n程序的汇编、链接和运行程序的汇编、链接和运行n指令中的操作数指令中的操作数nI/O.H中宏的输入中宏的输入/输出输出 3.1 汇编语言汇编语言n一个汇编语言的源代码文件包含了一一个汇编语言的源代码文件包含了一系列语句。系列语句。n语句要求每行少于语句要求每行少于80个字符。个字符。(

2、MASM6.1还允许不长于还允许不长于512个字符的句子,在每行的行尾用个字符的句子,在每行的行尾用斜杠斜杠“”将一条语句拆分成多行)。将一条语句拆分成多行)。n注释语句,开头用注释语句,开头用“;”。 Mov eax,0 ;初始化数据为;初始化数据为0n不区分大小写不区分大小写Chap3 Elements of Assembly Language43.1 汇编语言汇编语言n汇编语言的语句有三种类型:汇编语言的语句有三种类型:n指令性语言(指令性语言(instruction)n指示性语言(指示性语言(directive)n宏(宏(macro)Chap3 Elements of Assembly

3、 Language5指令性语言(指令性语言(instruction)n指令性语句要通过汇编器翻译成目标指令性语句要通过汇编器翻译成目标代码(机器代码),在运行时执行。代码(机器代码),在运行时执行。每一条指令都被唯一地翻译成每一条指令都被唯一地翻译成80*86CPU可以执行的操作。可以执行的操作。nMov number1, eaxnAdd eax, number2nAdd ebx, -1nChap3 Elements of Assembly Language6指示性语言(指示性语言(directive)n一条指示性语句告诉汇编器做某种操一条指示性语句告诉汇编器做某种操作。这种操作并不会产生机器

4、指令,作。这种操作并不会产生机器指令,也不会对目标代码有任何影响。也不会对目标代码有任何影响。n.code n. 386n.nolistnInclude io.hChap3 Elements of Assembly Language7宏(宏(macro)n一个宏语句是一系列语句的缩写,它一个宏语句是一系列语句的缩写,它们可以是指令性语句、指示性语句或们可以是指令性语句、指示性语句或者宏。者宏。Chap3 Elements of Assembly Language89汇编语言的格式汇编语言的格式n由汇编语言编写的源程序是由许多语句由汇编语言编写的源程序是由许多语句(也也可称为汇编指令可称为汇编指

5、令)组成的。每个语句由组成的。每个语句由14个部分组成,其格式是:个部分组成,其格式是: 名字名字 指令助记符指令助记符 操作数操作数 ;注解;注解 1.名字:名字:给指令或某一存储单元地址所起的名字。给指令或某一存储单元地址所起的名字。可由下列可由下列字符组成:字符组成: 字母:字母:A z ; 数字:数字:0 9 ; 特殊字符:特殊字符:?、 、_、$ 。数字数字不能不能作标识符的作标识符的第一个字符第一个字符,而,而圆点圆点不能不能用作用作第一个第一个字符字符。标识符最长为。标识符最长为247个字符。个字符。n名字域的用处之一是在程序汇编和链名字域的用处之一是在程序汇编和链接后,代表指令

6、在内存中的地址。其接后,代表指令在内存中的地址。其他的指令就可以很容易地找到这个被他的指令就可以很容易地找到这个被标识的指令,如果一条加法指令需要标识的指令,如果一条加法指令需要在程序中循环执行,那么就可以这样在程序中循环执行,那么就可以这样写:写:naddloop: add eax,158nJmp addloopnJmp是跳转指令。是跳转指令。Chap3 Elements of Assembly Language10Chap3 Elements of Assembly Language11Exercises 3.1For each combination of characters belo

7、w, determine whether or not it is an allowable label (name). If not, give a reason(a) repeat(b) exit(c) more(d) EndIf(e) 2much(f) add(g) if(h) add2汇编语言的格式汇编语言的格式名字名字 指令助记符指令助记符 操作数操作数 ;注解;注解 2.指令助记符:指令助记符:表示不同操作的指令表示不同操作的指令3.操作数:操作数: 指令执行的对象。指令执行的对象。依指令的依指令的要求,可能有一个、两个或者没有。要求,可能有一个、两个或者没有。4.注解:注解:该项

8、可有可无,是为源程序所该项可有可无,是为源程序所加的注解,用于提高程序的可读性。加的注解,用于提高程序的可读性。ZeroCount:mov eax,0 ;初始化数据初始化数据为为0 Chap3 Elements of Assembly Language123.2一个完整的实例一个完整的实例n从键盘输入两个数据,得到两个数据从键盘输入两个数据,得到两个数据的和,显示出来。的和,显示出来。Chap3 Elements of Assembly Language13Chap3 Elements of Assembly Language14C program#include main() long a,

9、b,c; printf(Enter first number: ); scanf(%ld,&a); printf(nEnter second number: ); scanf(%ld,&b); c=a+b; printf(nnThe sum is %ld n,c);汇编语言设计:汇编语言设计:n输入第一个数字;输入第一个数字;n输入代表第一个数字的输入代表第一个数字的ASCII码字符;码字符;n将此字符转化为二进制补码的双字;将此字符转化为二进制补码的双字;n存储第一个数字;存储第一个数字;n输入第二个数字;输入第二个数字;n输入代表第二个数字的输入代表第二个数字的ASCII码字符;码字符;n

10、将此字符转化为二进制补码的双字;将此字符转化为二进制补码的双字;n将第一数字加到第二个数字上去;将第一数字加到第二个数字上去;n将和转化为将和转化为ASCII码字符;码字符;n显示标号及代表和的字符。显示标号及代表和的字符。Chap3 Elements of Assembly Language15程序清单Chap3 Elements of Assembly Language16Directives(1)n.386指明指令集指明指令集n.model flat程序工作模式程序工作模式, flat为为Windows程序使用的模式程序使用的模式(代码和数据使用同一个代码和数据使用同一个4GB段段)nE

11、xitProcess proto near32 stdcall , dwExitCode:dword 是一个指示性语句。是一个指示性语句。Proto用来产生一个函数,用来产生一个函数,函数名字是:函数名字是:ExitProcess,用于结束程序的系,用于结束程序的系统函数。它有一个参数统函数。它有一个参数Dword类型的。类型的。Chap3 Elements of Assembly Language17Directives (2)nInclude io.h指示汇编器拷贝一文件指示汇编器拷贝一文件io.h到程序中到程序中n.stack指示汇编器运行时堆栈要保留多少字节,通常指示汇编器运行时堆栈要


文档来源:https://www.renrendoc.com/paper/212626908.html

文档标签:

下载地址