汇编语言与计算机原理第五章.doc_第1页
汇编语言与计算机原理第五章.doc_第2页
汇编语言与计算机原理第五章.doc_第3页
汇编语言与计算机原理第五章.doc_第4页
汇编语言与计算机原理第五章.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章 汇编语言程序基础5.1 概述计算机程序设计语言可以分为三个层次:机器语言、汇编语言和高级语言。1机器语言在机器语言中,用二进制编码表示指令和数据。使用机器语言编写的程序称为机器语言程序。计算机能够直接理解和执行机器语言程序。机器语言程序具有占用内存空间少,执行速度快的优点。但是,使用机器语言编写程序非常繁琐,阅读和修改程序也十分困难,并且不同类型的计算机,其机器语言也不相同。现在,除非特殊需要,人们基本不再使用在机器语言设计程序。2汇编语言汇编语言程序使用机器指令的助记符号书写指令,地址和数据也使用符号表示。与机器语言程序相比,汇编语言程序编写、阅读和修改程序要方便许多,又有占用内存空间少,执行速度快的优点。但是,汇编语言程序要“翻译”成机器语言程序计算机才能执行。将汇编语言程序翻译成机器语言程序过程称为汇编(Assemble)。可以使用计算机软件自动完成汇编工作,这种软件称为汇编程序。使用汇编语言程序编写的程序称为汇编语言源程序,一般以文件形式存储在磁盘上,称为源程序文件,约定扩展文件名为“.ASM”。汇编语言源程序经过汇编后所得到的程序称为目的程序,目的程序一般也以文件形式存储在磁盘上,其约定文件扩展名为“.OBJ”。目的程序还需要链接处理,才能形成计算机可直接执行的机器语言程序(文件扩展名一般为“.EXE”)。链接处理由链接程序完成,链接程序可以将一个或多个目标程序链接为一个可执行程序。尽管使用汇编语言编写程序比使用机器语言要容易得多,但是仍然繁琐,并且,同使用机器语言一样,使用汇编语言编写程序同样要了解计算机的内部硬件结构,设计问题的求解步骤仍然需要结合和计算机的内部硬件结构。因此,机器语言和汇编语言被称为面向机器的语言。设计好的程序只能在特定类型的计算机上运行,难以移植到其它类型计算机上。3高级语言高级语言是类似于英语的计算机语言,实际上它是将英语的一些单词给与确切的操作含义限制,作为计算机的操作指令。使用高级语言设计程序,不需要了解计算机的内部硬件结构,只需要考虑问题的求解步骤即可,因此,高级语言又被称为面向过程的程序设计语言。目前使用的高级语言有几百种,常用的高级语言有C、C+、JAVA、FORTRAN、COBOL等高级语言编写的程序称为高级语言源程序,一般以文件形式存储在磁盘上。不同高级语言的源程序使用的约定文件扩展名不同,例如,C语言源程序文件扩展名的约定为“.C”;FORTRAN语言源程序文件扩展名的约定为“.FOR”等。计算机不能直接执行高级语言编写源程序,必须“翻译”成机器语言程序计算机才能执行。将高级语言程序“翻译” 成机器语言程序的系统软件称为解释程序或编译程序。根据翻译方式不同,可以将高级语言分为解释型和编译型。解释型高级语言程序,执行时才进行翻译,并且翻译一句,执行一句,这样边解释边执行,直到程序执行结束。解释型高级语言不保存翻译结果,也就是说不产生目的程序文件。解释型高级语言程序每次执行都要重新翻译,因此执行速度较慢。但是由于解释性高级语言程序是翻译一句执行一句,因此容易发现程序中的错误指令,便于调试程序。编译型高级语言程序是将源程序一次编译为目的程序,并且以文件扩展名“.OBJ”存储在磁盘上。和汇编语言类似,高级语言程序编译产生的目的程序也需要经过链接处理,才能形成计算机可直接执行的机器语言程序 (文件扩展名一般为“.EXE”)。编译型高级语言程序是一次翻译,程序执行只要执行可执行程序文件即可,不需要再翻译,因此程序执行效率高。另外,作为提供给用户的应用程序,可以只提供给用户可执行程序文件,这样用户就很难对程序自行修改,提高了程序的安全性。作为商品软件,一般软件公司还可以通过对源程序保密,来保护自己的知识产权。本章讨论汇编语言程序设计的基本概念和方法。5.2 算法和程序基本结构一、 算法解决和处理问题的步骤称为算法,使用计算机处理某问题的步骤称为计算机算法,这里简称为算法。将算法用计算机语言表述,就是计算机程序。为了能够直观、清楚的描述算法,分析算法是否正确,以及算法的优劣,常常使用图形工具表示算法,其中流程图是使用最早最广泛的一种。流程图使用一些图形符号表示各种不同操作,图5.2.1给出的是几个常用的基本流程图符号。矩形框:表示内部操作输入输出框:表示输入输出操作菱形框:表示判断选择操作端框:表示开始和结束 流线:表示操作方向图5.2.1 流程图使用的基本符号实践证明,流程图在程序设计中是十分有用的工具,可以帮助我们分析问题,确定问题的正确算法。流程图还可以帮助我们阅读和理解其他人设计的程序算法。图5.2.2是计算S=1+2+100算法的流程图。该算法是针对使用汇编语言程序设计的,因此涉及了CPU的内部寄存器。算法将AX寄存器作为存放结果的寄存器,并将其初始值置为0;BX寄存器初始值置为1,重复计算AX+BX,并且将计算结果存入AX寄存器,每执行一次加法运算后BX寄存器增1;CX寄存器作为计数器,其初始值设置为计算重复次数100,每执行一次运算,CX减1,直到CX等于0,计算结束。为了使流程图简洁、清楚的描述算法,有时有必要忽略一些显而易见的细节,有时一些步骤可能还需要进一步详细描述,例如,图中输出AX寄存器这一步骤就需要进一步给出详细算法,但是为了突出重点,这里就没有给出详细的具体步骤,其详细步骤可以在“子图”中给出。开始0AX1BX100CXCX=0?AX+BXAXBX+1BXCX-1CXN输出AX值结束Y图5.2.2 流程图示例二、程序基本结构经过长期的实践人们认识到为了提高程序设计效率,使程序容易调试和维护,程序应当有良好的结构,结构化程序设计方法就是基于这种认识提出的。结构化程序设计方法认为:任何程序都可以由三种基本结构组合而成:顺序结构、判断选择结构和循环结构。1顺序结构顺序结构由一组按照先后顺序执行指令的构成,其流程图描述如图5.2.3。2判断选择结构判断选择结构由一个判断指令和两个程序块构成,当判断条件成立时执行其中一个程序块,当判断条件不成立时执行另一个程序块,其流程图描述如图5.2.4(a)。判断选择结构有两种变形,如图5.2.4(b)和图5.2.4(c)。Y条件程序块二图5.2.4 (a) 判断选择结构程序块一程序块二程序块三图5.2.3 顺序结构程序块一NY条件图5.2.4 (b) 判断选择结构程序块条件程序块图5.2.4 (c) 判断选择结构条件程序块一条件程序块一YN图5.2.5 当性循环图5.2.6 直到性循环N/YY/N3 循环结构循环结构由一个条件判断指令和循环体组成,循环体包含一条或若干条指令。循环结构根据条件判断的结果执行或者不执行循环体。循环结构有两种形式:当型循环(图5.2.5)和直到型循环(图5.2.6)。当型循环是判断条件是否成立,如果成立则执行循环体,否则执行循环结构下面指令;直到型循环执行循环体直到条件不成立。当型循环和直到型循环的区别是:前者先判断条件是否成立,后执行循环体,如果开始条件就不成立则跳过循环体;后者先执行循环体,执行后再判断条件是否成立,因此,至少执行循环体一次。5.3 汇编语言程序本节给出计算S=1+2+100的汇编语言示例程序,说明汇编语言程序的基本结构和主要成分。一、汇编语言程序示例.MODEL SMALL.DATA X DW ?.CODEGO: MOV AX, DATA MOV DS, AX MOV AX, 0 MOV BX, 1 MOV CX, 100 LP: ADD AX, BX INC BX LOOP LP MOV X, AX END GO程序说明:1MODEL 存储模式说明伪指令, 所谓伪指令就是非执行指令,主要用于为汇编程序提供相关汇编信息,或者设置程序执行所需要的一些参数。存储模式说明的目的是给操作系统提供程序执行时所需要的内存空间分配信息。存储模式有HUGE、LARGE、MEDIA、SMALL等。SMALL模式的程序机器代码不大于64K存储空间。2汇编语言程序由若干逻辑段组成,简单程序可以只有一个段。一般程序都有一个数据段和一个代码段,如上面程序DATA段位数据段,CODE段为代码段。DATA和CODE分别是数据段和代码段的约定段名。段名前要用“”标识。数据段一般用于定义程序将处理的数据,代码段一般由程序指令组成。3数据段的数据定义应当说明数据明、数据操作类型、存储空间分配和数据的初值。数据名是用户给出的合法的名字,数据名是若干连续存储单元的首单元在段内的偏移地址符号。数据操作类型用如下伪指令定义:DB 字节DW 字DD 双字数据存储空间分配和赋初值同时定义。指定一个初值就按数据的操作类型分配相应的存储空间,并且将指定的值存储到该存储空间。如果不指定初值,可以使用“?”号为数据分配存储空间。一个“?”号表示按操作类型分配一个存储单位。例如:buff dw ?, ?表示数据buff的操作类型为字类型,占用两个字(4各字节)的存储空间,没有初值。4 程序结束命令是:END 标号标号是程序执行的入口偏移地址,即当程序装入内存执行时,由那一条指令开始执行。该偏移地址值由操作系统程序装入CPU的指令指针寄存器IP。5示例程序代码段开始的两条指令MOV AX, DATAMOV DS, AX符号“”是取基址运算符号,第一条指令是计算数据段的段基址,然后将其保存到AX寄存器。第二条指令是将AX寄存器保存的段基址传送给数据段基址寄存器DS。程序开始将数据段的段基址装入DS段寄存器是必须做的。操作系统装入应用程序只能自动初始化代码段寄存器CS,其它段寄存器应当由用户程序初始化。因为程序中指令只涉及到数据的段内偏移地址,所以要将其段基址先存入DS段寄存器,以便程序执行时能够正确计算数据存放的物理地址。至于数据段基址和代码段基址的具体值,程序装入内存时由操作系统分配。上面程序是一个不完整的程序,,一是没有输出结果,二是没有结束程序指令。对于程序设计人员编写输入输出程序是一件非常烦琐的工作,并且要十分清楚的了解计算机的硬件工作原理。一般来说,不同程序的输入输出操作部分是十分相似的,因此人们想到,可以将输入输出操作设计成通用程序模块,需要时只要调用相应模块即可。计算机的通用输入输出程序模可分为两个层次:一是计算机厂商固化在只读存储器中的基本输入输出模块(BIOS),其二是包含在计算机操作系统中的输入输出功能模块。BIOS的输入输出模块和计算机硬件联系较紧密,不同厂家制造的计算机BIOS也有所不同。调用BIOS模块称为低级调用,一般调用低级输入输出模块的程序的兼容性要差。调用操作系统的输入输出功能模块和硬件关联较少,程序的兼容性好。在DOS操作系统下,可以调用DOS系统提供的软中断服务程序;在WINDOWS操作系统下,可以调用API函数。二、汇编语言程序上机过程1编辑源程序可以通过DOS系统的EDIT.COM,或WINDOWS的笔记本程序输入、编辑源程序。注意源程序文件的扩展名约定为“.ASM”。2将源程序汇编为.OBJ文件,命令格式为:MASM 源程序文件名;这里分号的作用是忽略系统的提示输入,如果不输入分号,系统将提示输入OBJ文件名等信息;汇编程序将检查源程序的语法错误,如果没有语法错误产生OBL文件;如果有语法错误将给出错误提示,这时应使用编辑软件重新编辑,修改错误。3将汇编产生的OBL文件连结为可执行程序文件,命令格式为: LINK 文件名;这里的分号的作用与汇编命令含义相同。注意命令中可省略扩展名,如果输入扩展名应当是“OBJ”,不要输入源程序的扩展名“ASM”。LIN K命令产生EXE文件,或使用特殊技巧可产生COM文件。三、汇编语言的伪指令汇编语言程序中一些指令在汇编时产生一个机器指令相对应的目标代码,另外一些指令没有相对应的机器指令,这些指令仅仅为汇编程序提供汇编过程中必要的信息。这些指令称为伪指令。1段定义伪指令汇编语言程序由若干逻辑段构成,每个段有一段名,段名由字母、数字和下划线组成,但首字符必须是字母或下划线,其一般格式为:段名1 SEGMENT 段名1 ENDS段名2 SEGMENT 段名2 ENDS 段名n SEGMENT 段名n ENDS END 标号示例程序是简略格式,使用简略格式在输入源程序时可以减少许多繁琐工作,在以后章节的示例程序都将以简略格式给出。 简单的汇编程序只有一个代码段,或者一个代码段和一个数据段,较复杂的程序可能包含若干数据段和若干代码段。2,程序结束伪指令 每一个汇编语言程序必须以“END”结束,后面要给出标号或过程名,该标号或过程名应当是程序中定义过的,代表程序执行的入口地址。3存储模式定义为伪指令:MODEL是存储模式定义为伪指令,链接程序在对目标程序链接时,根据此项定义确定程序执行时装入内存的模式。存储模式定义如下:。TINY 代码与数据在同一段中。SMALL 数据段在64K内,代码段在64K内。MEDIUM 数据段在64K内,代码段可以大于64K。COMPACT 代码段在64K内,数据段可以大于64K。LARGE 代码段和数据段均可以大于64K,但是数组不大于64K。HUGE 代码段、数据段和数组都可以大于64K4数据定义伪指令 数据定义格式为:变量名 DB | DW | DD 表达式表 其中:DB 表示数据类型是字节(位)类型; DW 表示数据类型是字(16位)类型; DD 表示数据类型是双字字(32位)类型。变量名实际是内存偏移地址的符号表示,该地址就是数据存储的开始地址。变量通过表达式列表为其分配存储空间和预置初值,例如:X1 DB 0F2H, 32H ;变量X1分配两个字节,并赋初值0F2H, 32H A DW 0F9AH, 0A4B6H ;变量A分配两个字,并赋初值0F9AH, 0A4B6H B DB 100,2*3 ;变量B分配两个字节,并赋初值100, 6 Y DB ABCD ;变量Y分配四个字节,并赋初值41H, 42H, 43H, 44H SS DW AB, CD ;变量SS分配两个字,并赋初值4241H, 4443H如果存储单元初值不确定,可以用“?”代替,例如:RESUL DB ?, ?, ? ; 变量RESULT分配个字节,没有赋初值。使用DUP重复子句可以给多个连续存储单元赋同一值,例如,ARRY DB 100 DUP(0) ;变量ARRY分配100个子节,每个字节赋初值0L DB 2DUP (A,2DUP(B); 变量L分配个字节,赋初值A,B,B,A,B,B5常量定义变量初值,以及表示立即操作数都需要使用常量。在汇编语言中常量有五种形式:十六进制数(以字母H结束当首位数字为字母时,前面要加0)二进制数(以字母B结束);十进制数(隐含);八进制数(以字母Q结束)。下面指令实际赋值结果是相同的:MOV DL,AMOV DL, 41HMOV DL, 0100 0001BMOV DL, 65第一条指令是将字符A的ASCII码传送到DL寄存器,后面三条指令的源操作数分别是字符A的ASCII码的16进制、二进制和十进制表示形式,所以四条指令执行结果是相同的。6表达式和运算符包括: 表达式经常用于表示地址值,立即数的值,或变量的初始值等。在汇编语言中凡是可以使用常量的地方都可以使用表达式。表达式是由运算符号、常量、变量以及圆括号组成的,有一定运算意义的式子,例如:MOV DL, 65+32表达式中使用的基本运算符号包括:算术运算符号:(加号),(减号),(乘号),/(除号);关系运算符:GT(大于),GE(大于等于),LT(小于),LE(小于等于),EQ(等于),NE(不等)。例如:X DB 3 GT 2 ,当关系成立时X赋值全1,即x=0FFH;当关系不成立时赋值全0 ,即x=00H。逻辑运算符:NOT(逻辑非),AND(逻辑于),OR(逻辑或),XOR(逻辑异或)在汇编语言中,逻辑运算符表示的是位运算,例如指令 MOV AL, 3 AND 0FH,执行的操作是将字符3的ASCII码和0FH按二进制数的每一位进行“与”运算,结果存到AL寄存器。如下图: 0011 0011B ;字符3的ASCII码 0000 1111B ;0FH对应的二进制数 0000 0011B 7标号标号是地址符号,用于表示指令地址或数据地址。表示指令偏移地址的标号一般置于指令之前,标号后由一冒号。指令标号可以作为转移指令和循环指令的目的操作数。5.4 DOS功能函数调用计算机硬件是程序运行的平台,对于应用程序只有硬件平台是不够的,还必须有软件平台,这就是操作系统程序。在DOS操作系统下,汇编语言程序可以直接调用DOS操作系统的功能函数,完成程序的输入和输出操作。一、DOS功能函数调用DOS操作系统提供了执行基本输入输出等功能的函数,计算机启动时DOS功能函数随着DOS核心文件一起装入内存,并且常驻内存的某一固定空间。DOS操作系统的每一个功能函数有一对应编号,称为功能号。在汇编语言中,调用的功能函数的方法是:1设置调用函数的入口参数;2将代表函数的功能号赋给AH寄存器;3发出“INT 21H” 调用DOS功能函数指令。INT 27H INT 33H执行“INT 21H” 指令时,计算机系统根据AH寄存器中的功能号找到相应功能函数的入口地址,转移执行功能函数程序,执行结束后,返回调用程序继续执行“INT 21H”后面指令,并且将调用结果(功能函数的出口参数)带回调用程序。二、字符输入输出函数调用DOS功能函数有上百个,使用时可查阅相关技术手册了解函数的入口参数,功能号和调用后的返回值。为了下面示例程序需要,这里介绍几个常用的DOS功能函数:1 字符输入函数功能号:01H入口参数:无功能:接受键盘输入的一个字符返回值:输入字符的ASCII码在AL寄存器。例: MOV AH, 01H INT 21H执行上面01功能调用时,计算机等待键盘输入,当键盘某键按下时,将对应键的ASCII码存入AL寄存器,结束调用。所以,该功能函数调用后,可以通过检查AL寄存器的值,识别输入的字符。2字符串输入函数功能号:0AH入口参数:DS:DX指向输入缓冲区地址,缓冲区的结构如下: 字节0: 缓冲区能容纳的字节数 字节1: 所读字节数 字节2开始: 实际输入的字符。功能:带缓冲区的键盘输入,将键盘输入的字符串存入DS:DX指向的输入缓冲区返回值:无例: .DATA BUFF DB 80H, ?, 80H DUP(?) .CODE START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET BUFF MOV AH, 0AH INT 21H 0A功能函数是带缓冲区的键盘输入函数,使用该功能可以输入一个字符串,当输入回车键时,输入结束。该调用将输入的实际字符数存入缓冲区的第二个字节(不包括回车键),将输入字符的ASCII码按照输入的顺序从第三个字节开始存储。缓冲区是程序设计者定义的数据变量,调用0A功能前要将该变量的段基址置入DS段寄存器,将变量的偏移地址置入DX寄存器,并且要将变量分配的字节数置入变量的第一个字节。输入的字符数不可以超过变量可容纳的字节数。3字符输出函数功能号:02H入口参数:输出字符的ASCII码存入DL寄存器。功能:将DL寄存器中的字符输出到标准输出设备(一般为显示器)。返回值:无例如,输出字符“8”,可使用如下指令:MOV DL, 38HMOV AH, 02HINT 21H4字符串输出函数功能号:09H入口参数:DS:DX指向输出缓冲区地址,输出字符串必须以“$”结束 功能:输出字符串返回值:无例如,下面程序段输出数据段定义的字符串“GOOD MORNING .”,调用09H功能输出该字符串: .DATA BUFF DB, GOOD MORNING .$ .CODE START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET BUFF MOV AH, 09H INT 21H 5结束程序函数功能号:4CH入口参数:无 功能:结束程序返回值:略执行程序由操作系统装入内存执行,程序执行完应返回操作系统。为了能够正常返回操作系统,可以调用DOS的4CH功能函数。三、应用举例:下面用几个简单的程序说明上面所介绍的DOS功能函数的应用。例1:从键盘输入字符串,存入内存变量,如果输入回车键,表示输入结束。算法分析:键盘输入可以调用DOS的01H功能,一个字符一个字符的输入,每输入一个字符,判断是否为回车键(ASCII码0DH),如果是回车键,输入结束。也可以调用0AH字符串输入功能。下面分别给出这两种方法的程序示例。1 调用字符输入01H功能的字符串输入程序:.MODEL SMALL.DATA X DB 128 DUP ($).CODE START: MOV AX, DATA MOV DS, AX ;段寄存器初始化 MOV SI, 0 INPUT: MOV AH, 01H INT 21H ;调用dos字符输入函数 CMP AL, 0DH; ;(AL)- 0DH,输入是回车键吗? JE EXIT ;结果为0是回车键,转移到EXIT MOV XSI, AL ;AL中的ASCII码存入地址为 DS*10H+(SI)+(X)内存单元 INC SI JMP INPUT ;无条件转移到INPUT标号,输入下一数字 EXIT: MOV AH, 4CH INT 21H ;调用4C功能函数,结束程序 END START 2 调用字符串输入0AH功能的字符串输入程序:.MODEL SMALL.DATA BUFF DB 128, ?, 128 DUP($).CODE START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET BUFF INPUT: MOV AH, 0AH INT 21H EXIT: MOV AH, 4CH INT 21H END START程序说明:1变量BUFF定义为字节类型,第一个字节赋值128,表示键盘输入缓冲区可容纳字节数为128个字节;第二字节没有赋值,由0AH功能函数赋值,在调用0AH功能后该字节的值是实际输入的字符数(不包括会车字符);由第三字节开始,共128个字节存放输入的字符串,这128个字节赋值字符“$”,是为了调用09H功能数出字符串(参阅例3)。2OFFSET是取变量偏移地址运算符。0AH功能调用要求DS:DX指向键盘输入缓冲区,所以应将BUFF的偏移地址存入DX寄存器。例3:调用09H功能输出字符串。下面程序调用0AH功能输入字符串,然后再调用09H功能将字符串输出:.MODEL SMALL.DATA BUFF DB 128, ?, 128 DUP($).CODE START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET BUFF INPUT: MOV AH, 0AH INT 21H OUTPUT: MOV DL, 0DH MOV AH, 02H INT 21H MOV DL, 0AH MOV AH, 02H INT 21H MOV DX, OFFSET BUFF+2 MOV AH, 09H INT 21H EXIT: MOV AH, 4CH INT 21H END START程序说明:1标号OUTPUT开始的6条指令调用02H功能输出0DH和0AH,0DH是回车的ASCII码,输出0DH使光标回到当前行的开始位置,0AH是换行控制ASCII码,使光标换到下一行。2指令“MOV DX, OFFSET BUFF+2”是将BUFF加2,在取偏移地址,因为实际输入的字符从BUFF的第3字节开始。5.5 程序调试工具软件DEBUGDEBUG是DOS操作系统提供的工具软件,常用于程序调试。本届介绍DEBUG在汇编语言程序调试中的使用。一、DEBUG命令在DOS提示符下输入DEBUG,回车后进入DEBUG。DEBUG的提示符为“-”,在该提示符下即可输入DEBUG命令。在DEBUG中所用数均为16进制数,不用加“H”后缀。下面介绍DEBUG常用命令:1 汇编命令A 格式:A 段基址 :偏移地址 功能:输入汇编指令。 示例:- A -0BDD:0100 MOV AL, 3 -0BDD:0102 ADD AL,3 -0BDD:0104当显示下一地址时,直接回车即结束输入。2 执行命令G格式:G= 开始地址, 结束地址 功能:从开始地址执行指令,执行到结束地址。 示例:- G =0100,01043 单步执行命令T格式:T= 开始地址 功能:执行当前地址指令,执行后停止,并且显示个寄存器值和下一条指令。 示例:- T=0100 AX=0003 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0BDD ES=0BDD SS=0BDD CS=0BDD IP=0102 NV UP EI PL NZ NA PO NC-0BDD:0102 0405 ADD AL, 34显示内存命令D格式:D= 开始地址 ,结束地址 功能:显示指定地址范围的内存值,显示是以16进制数形式和字符两种形式显示,如果是非打印字符,则以“。”代替。如果不指定结束地址,则显示一页。反汇编命令格式:= 开始地址 ,结束地址 功能:将指定地址范围内的机器代码反汇编为指令助记符。示例:=0100 0C2E:0000 B82F0C MOV AX, 0C2F 0C2E:0003 8ED8 MOV DS, AX0C2E:0005 BE000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论