




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言程序设计 实习指导书汇编语言程序设计实习指导书编者 田晶西北农林科技大学信息工程学院2015年11月前 言汇编语言程序设计是高校计算机专业的一门重要的必修课,而且是非计算机专业学生学习微机原理与应用的必要先修课,它是计算机能提供给用户的执行速度最快而又最有效的编程语言,也是能够利用计算机所有硬件特性并能直接控制硬件设备的唯一语言,是进入硬件领域进行计算机控制的一块铺路石。在汇编语言的教学实践中,学生普遍感到该课比较难学,主要与该课程的下列特点有关:汇编语言与计算机硬件有关(主要是CPU中寄存器和存储器)。汇编指令系统指令较多,语法规则多且严格,难学难记。汇编语言输入/输出功能弱,不直观,程序难以调试。汇编指令中操作数来源广(寄存器、内存、I/O端口),且不好理解。因此,要学好汇编语言,必须注意一下几点:掌握汇编语言中与计算机硬件有关的部分内容(主要是CPU中的寄存器和I/O端口寄存器),特别注意“状态标志寄存器”各个状态位的设置与应用。掌握好CPU的内存管理方法(主要是内存物理地址的形成方法)。掌握好寻址方式(寻找指令中操作数的方法)。掌握汇编程序的结构组成(分段结构)熟练掌握DEBUG调试程序的应用。加强上机实习。汇编语言与其它高级语言一样,实践性很强,只有通过上机实习,才能理解这门课的内容,掌握好这门课程序设计方法和技术,为了配合这们课的学习,我们编写了这本实习指导书,希望通过这门课的实践,对掌握汇编语言程序设计方法,提高实验技能,起到抛砖引玉的作用。编者2015年10月目 录实验一 汇编语言程序设计上机步骤-3实验二 DOS子功能调用-14实验三 顺序程序设计-15实验四 分支程序设计-16实验五 循环程序设计-17实验六 子程序设计-18实验七 中断处理子程序设计-19实验八 综合程序设计-20附录 动态调试程序DEBUG-21实验一、汇编语言程序设计上机步骤一、 实习目的 熟悉汇编程序的上机实习过程。 了解汇编程序的基本构成。二、实验环境 硬件环境 微型计算机(Intel x86系列CPU)1台。软件环境 Windows98/2000/xp操作系统任一种文本编辑器(EDIT、NOTEPAD(记事本)、写字版、WORD等)宏汇编程序(MASM.EXE)连接程序(LINK.EXE)调试程序(DEBUG.EXE或TD.EXE)三、实习内容在计算机上运行汇编语言程序的步骤是:(1) 用编辑程序建立汇编语言源程序(.ASM源文件)首先用编辑程序(可用任一种文本编辑程序,如EDIT等)产生汇编语言的源程序(类型为.ASM的源文件)。(2) 用MASM程序把汇编语言源程序( .ASM文件)转汇编成汇编目标文件( .OBJ文件)源程序就是用汇编语言的语句编写的程序,它是不能为机器直接识别的,所以要经过汇编程序(MASM)进行翻译。汇编程序的作用就是把源文件转换成二进制代码形式的目标文件(.OBJ文件)。在转换的过程中,汇编程序将对源程序进行扫描,如果源程序中有语法错误,则汇编结束后,汇编程序将指出源程序中的错误,要求用户再次使用编辑程序来修改源程序中的错误后继续汇编,直至得到无语法错误的汇编目标文件( .OBJ文件),表示汇编通过。汇编程序的主要功能是: 检查源程序语法是否正确。 测出源程序中的语法错误,并给出出错信息。 产生源程序的目标程序,并可给出列表文件(同时列出汇编语言和机器语言的文件,称为 .LST文件)。 展开宏指令。(3) 用LINK程序把汇编目标文件( .OBJ文件)转连接成可执行文件( .EXE文件)经过汇编产生的汇编目标文件(.OBJ文件)虽然已经是二进制文件,但它还不能直接上机运行,必须经过连接程序LINK把目标文件与库文件或其他目标文件连接在一起形成可执行文件(.EXE文件),才能在计算机上直接执行。(4) 用DOS命令直接键入文件名就可执行该程序经过连接产生的可执行文件(.EXE文件)已经是可以直接上机运行的二进制文件,运行这个文件可以由DOS装入存储器,并在机器上运行。(5) 用DEBUG调试该程序运行后如果发现运行结果不对,则程序有逻辑错误,这时候可用动态调试程序DEBUG调试该可执行程序(.EXE文件),找出程序的错误之处,再重新进行源程序的编辑、汇编和连接等工作。具体Debug调试命令见附录(动态调试程序Debug)。四、上机步骤制作汇编语言系统盘盘上应包括下列程序宏汇编程序(MASM.EXE)连接程序(LINK.EXE)调试程序(DEBUG.EXE或TD.EXE)编辑软件(EDIT.EXE)也可以在硬盘上建立汇编语言文件夹。如下例子均在硬盘D区建立文件夹ASM,文件夹下包括宏汇编程序(MASM.EXE)和连接程序(LINK.EXE)即可,编辑软件EDIT.EXE和调试程序DEBUG.EXE系统已有。在DOS系统下进入文件夹ASM启动开始程序附件命令提示符CD:DCD ASM用编辑程序建立汇编源程序文件(.ASM源文件)通过编辑软件EDIT.EXE建立。 DEDIT OUTCHAR.ASM图2 EDIT.EXE编辑软件主界面注意:I、进入各菜单“Alt键+各菜单名打头字符”(如进入File菜单Alt+F) II、程序输入完毕保存在软盘A(作业盘)上。 III、汇编源程序文件名扩展名为.ASM。通过编辑软件NOTEPAD(记事本)建立。开始程序附件记事本图3 NOTEPAD(记事本)编辑软件主界面在编辑软件中录入要输入汇编语言源程序,并予以保存(文件扩展名为ASM)。例1:若在屏幕上连续显示字符0123456789的源程序如下: NAME EX061 ;OUTP UT CHARACTER 0-9 STACK SEGMENT PARA STACK STACK STAPN DB 100 DUP(?) TOP EQU LENGTH STAPNSTACK ENDS COSEG SEGMENT ASSUME CS:COSEG, SS:STACK START: MOV AX, STACK MOV SS, AX MOV AX, TOP MOV SP, AX MOV BL, 0 PUSH BXGOON: MOV DL, 20H MOV AH, 2 INT 21H POP BX MOV AL, BL INC AL DAA AND AL, 0FH MOV BL, AL PUSH BXOR AL, 30H MOV DL, AL MOV AH, 2 INT 21H MOV CX, 0FFFFH AGAIN: DEC CX JNE AGAIN JMP GOON COSEG ENDS END START录入以上程序,并以文件名OUTCHAR.ASM予以保存在文件夹ASM下。用宏汇编程序MASM.EXE程序将刚建立汇编源程序OUTCHAR.ASM汇编成 汇编目标文件(OUTCHAR.OBJ)调用宏汇编程序MASM对源程序进行汇编 DMASM OUTCHAR (不用键入扩展名.ASM) Microsoft(R)Macro Assembler Version 5.00 Copyright(C)Microsoft Crop 1981-1985, 1987, All rights reserved. Object filenameoutchar.OBJ: Source lislingNUL.LST: Cross-referenceNUL.CRF: 0 Warning Errors 0 Severe Errors注意:Object filename为目标文件名, 可以采用方括号内的文件名, 也可以重新输入一个文件名。 Source listing要求输入源列表文件名, 当不要求产生.LST文件时, 可用回车回答, 也可输入一个列表文件名。 (本例假设输入OUTCHAR文件名,在汇编后产生OUTCHAR.LST)Cross-Reference要求输入索引文件名。 回答方法类似于源列表文件名情况。 但.CRF文件不是文本文件, 不能用TYPE命令列出。 若要求能阅读, 必须将索引文件(二进制形式的文件)变换为索引列表文件(文本文件)。 方法是执行程序CREF.EXE, 将索引文件变换为索引列表文件(.REF)。 操作步骤是: DCREF Cref Filename.CRF:OUTCHAR List Filenameoutchar.REF:OUTCHAR D利用LINK程序将汇编目标文件OUTCHAR.OBJ连接生成可执行的文件(OUTCHAR.EXE) DLINK OUTCHAR.OBJ IBM Personal Computer Linker Version 2.10(C)Copyright IBM Corp 1981, 1982, 1983 Run Fileoutchar.EXE: List FileNUL.MAP: Libraries.LIB: D其中: Run File是生成可执行的文件名(.EXE)。 List File是生成MAP LIST(清单列表)文件的文件名。 如有省略, 则不生成MAP LIST文件。 MAP LIST文件可用TYPE命令显示出来,通过此文件,可以了解程序中各个段的内存分布情况。 DTYPE OUTCHAR.MAP Start Stop Length Name Class 0000H 0002DH 0002EH COSEG 00030H 00093H 00064H STACK STACK Origin Group D由.MAP文件可以看到各逻辑段存放在内存中的位置, 其中, COSEG段, 从00000H开始, 至0002DH单元结束; 而STACK段, 则从00030H开始至00093H结束. 因为是PARA, 所以, 从被16 整除的边界(最后一位十六进制数地址是 0)开始。 利用DEBUG程序调试OUTCHAR.EXE程序一般情况下, 经过一次汇编就能顺利通过的应用程序往往是较少的,对一个大的程序, 往往被划分为若干个模块, 并对它们分别进行编写、 汇编和连接, 然后利用DEBUG程序分别对各个模块进行调试。 调试成功后, 再进行最后的连接、 调试, 直至程序能正常运行为止。 因此, 利用DEBUG程序对汇编连接后的程序进行调试是重要的手段之一。 DEBUG的调试命令如下: DDEBUG OUTCHAR.EXE -其中-为进入DEBUG程序的提示符(在调用DEBUG程序时, DEBUG程序应在A盘中)。在调试一个程序时: 用U命令, 可把.EXE文件反汇编为源文件, 检查输入的程序是否正确; 用G命令, 可设置断点运行可执行的文件; 用A命令, 可直接输入一段源程序并将其汇编为目标程序; 如用R命令,则可显示断点处的各寄存器的当前值和下一条将要执行的命令;如用D命令, 可以显示数据段中各存储单元的内容及代码段中的指令代码;如用E命令可对以上的数据和代码进行修改。 对调试成功的程序还可以通过命令N和写盘命令W, 将文件存入磁盘。 在DOS下运行可执行文件OUTCHAR.EXE文件 对汇编连接后生成的可执行文件OUTCHAR.EXE, DOS把它当成外部命令对待, 在DOS提示符下, 可直接键入OUTCHAR.EXE文件的文件名OUTCHAR, 不键入扩展名, 然后按回车键后,OUTCHAR .EXE文件将被执行。 DOUTCHAR 1 2 3 4 5 6 7 8 9 0 1 2+ D 以上程序执行后, 将连续地在屏幕上显示1, 2, 3, 4等数字, 每个字符间保留一个空格, 可用+复合键中断该程序的执行并返回DOS。 实验1. 顺序程序设计一、 实验目的掌握算术运算指令的使用方法。学会顺序结构程序的编程方法。掌握DOS子功能调用方法。 掌握汇编程序中变量的定义方法及变量值的查看方法。掌握DEBUG调试程序中D、T、P、R等调试命令的使用方法。掌握利用DEBUG调试程序查看F标志寄存器值方法。二、实验内容 编写程序并上机调试完成:从键盘上输入两个1位数,求出其乘积,并以十进制形式在显示屏上显示该成绩。编程提示:两个1位十进制数的输入可通过DOS的1号子功能调用两次输入2个数字字符实现(将输入的2个数字字符的ASCII码减去30再相乘。成绩显示可通过2次调用DOS的2号子功能实现(注意乘积各位的分离可分别用除以10实现。显示的数值要加30H变成字符。)2已知变量X、Y、Z、V中存放的是有符号字型数据,编写程序,计算(V-(X*Y-540)/X,并把结果存放到DX和AX寄存器中。编程提示:变量X、Y、Z、V在数据段中可定义成字型,并赋予具体初始数值。三、实验要求 提前完成2个程序的编制,并通过上机运行及调试,正确完成程序的编制。实验中注意DEBUG调试程序中T命令和P命令的使用,注意观察并记录程序中各个段的内存中的分配情况及各个中断处理子程序在内存中的起始存放地址。注意观察程序2和3中数据段中各数据的内存存放情况和程序执行中其值变化情况。用DEBUG调试程序调试所编程序,查看并记录每条指令内存占用情况及执行结果(包括F标志寄存各位值。注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对顺序程序的概念的理解。四、实验报告实习报告格式实习名称实习设备实习目的及要求 实习内容程序清单实习中出现问题及解决方法实习小结实验2. 分支程序设计一、 实验目的掌握条件跳转指令的使用方法。学会分支结构程序的编程方法。利用DEBUG调试程序查看F标志寄存器值并分析条件跳转指令的跳转和F标志寄存器值间的关系。二、实验内容编写程序并调试运行。要求:从键盘上接收一个按键,如果按键是小写字母,则显示输出L;是大写字母,则显示输出U;如果是数字,则显示输出N;都不是,则显示输出*。设变量K中存放了20个有符号整数组成的字节型数组,编写程序,找出其中最大的数和最小的数,并显示输出。三、实验要求编写程序并上机调试,记录运行结果。用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。)注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对分支程序的概念的理解。四、实验报告实习报告格式实习名称实习设备实习目的及要求 实习内容程序流程图程序清单及实验数据实习中出现问题及解决方法实习小结实验3. 循环程序设计一、 实验目的掌握移位指令的使用方法。学会循环结构程序的编程方法。利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。二、实验内容内存中连续存放了100个字节型带符号数据,编写程序,统计出:大于0的数据个数;小于0的数据个数;等于0的数据个数;奇数数据的个数;偶数数据的个数;编写统计15个学生数学学习成绩程序。要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。三、实验要求编写程序并上机调试,记录运行结果。用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。)注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对分支程序的概念的理解。四、实验报告实习报告格式实习名称实习设备实习目的及要求 实习内容程序流程图程序清单及实验数据实习中出现问题及解决方法实习小结实验4. 子程序设计一、 实验目的掌握子程序的编程方法。掌握主程序调用子程序方法。掌握汇编程序中堆栈段的建立方法。掌握汇编程序中堆栈段的建立方法。二、实验内容编写并调试完成程序:键盘输入一行字符串,在下一行反序显示输出该字符串。要求:下行显示时光标通过调用“回车换行子程序CR.ASM”实现。三、实验要求编写程序并上机调试,记录运行结果。用DEBUG调试程序调试所编程序,查看并记录子程序调用前后和子程序返回前后堆栈段内容的变化情况以及SP寄存器值变化情况。注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对子程序概念的理解。四、实验报告实习报告格式实习名称实习设备实习目的及要求 实习内容程序流程图程序清单及实验数据(子程序要求书写子程序说明)实习中出现问题及解决方法实习小结附录:动态调试程序DEBUG一、 DEBUG的启动与退出 DEBUG.COM是DOS的外部命令,也是一个非常方便的汇编程序分析工具。 1DEBUG的启动 DEBUG的启动格式如下: DEBUG其中,“文件说明”指被调试的程序的全名,“参数”是该程序所涉及的参数。下面是几个启动DEBUG的例子。 DDEBUG TT.EXE DDEBUG第一句是调试TT.EXE程序。第二句是启动DEBUG,不装入文件。DEBUG装入内存后,接着就从磁盘上查找被调试的程序,找到后将其装入内存(对于后缀为 .EXE的文件,DEBUG将它装入到最低可用的区段中,并从100H开始装入),然后显示出提示符“-”。等待用户进一步输入命令。DEBUG命令中使用的地址格式约定如下: :其中,可以是段寄存器名,或者是十六进制数,也可以默认。例如: CS:0100 2212:0100 而地址范围的格式为:: 或 :L 例如:下列地址范围。 CS: 100100 2123:100L10 2退出DEBUG 当完成动态调试任务时,可使用Q命令退出并返回操作系统。格式:-Q二、 汇编、执行、跟踪和反汇编 汇编、执行、跟踪和反汇编是DEBUG的一组最基本操作。在DEBUG下汇编一小段程序后,就可以进入执行或跟踪执行过程,然后将该程序反汇编出来。1A命令(汇编)A是1条逐行汇编命令,主要用于小段程序的汇编和修改目标程序。若在调试目标程序的过程中, 要求改写或增添一段目标程序, 则可以用A命令直接在DEBUG下实现。 使用逐行汇编命令汇编程序时,一般不允许使用标号和伪指令。但在MS-DEBUG中允许使用DB和DW这两条伪指令。汇编命令的格式如下:A 该命令可以从指定地址开始, 将输入的汇编语言语句立即汇编成机器代码, 连续存放在内存单元中。 其中,“地址”为开始汇编的地址,若没有“地址”,则从当前地址开始汇编。在程序输入完毕后, 最后一行不输入内容, 直接按回车键, 即可返回DEBUG程序, 还可用反汇编命令U 对刚输入的内容进行反汇编, 以验证输入的程序是否正确。 A命令用Ctrl+C或按回车键退出汇编。汇编过程中发现错误时,显示出1个“?”并要求重新输入。 使用A命令来汇编小段程序往往比使用汇编和连接程序方便。汇编好的程序也可以用写盘命令存在磁盘上。【例1】 汇编一小段程序(读软盘BOOT扇区内容)。-A 2A7D:0100 MOVAX,0201;地址自动给出,逐行输入语句2A7D:0103 MOVBX,02002A7D:0106 MOVCX,00012A7D:0109 MOVDX,00002A7D:010C INT132A7D:010E INT32A7D:010F ;结束输入使用A命令应遵守以下规则: 所有输入数值, 均为十六进制数。 前缀助记符, 必须在相关指令的前面输入, 可以在同一行, 也可以在不同行输入。 段超越助记符为CS:、 DS:、 ES:、 SS:。 远调用时的返回指令助记符用RETF。 使用串操作指令时, 助记符中必须注明是字节还是字传送。 汇编语言能自动汇编短、近和远的转移及近和远的调用,也能由NEAR和FAR前缀来超越。 例如: 0100:0500 JMP 502;短转移 0100:0502 JMP NEAR 505;近转移 0100:0505 JMP FAR 50A;远转移 第一条JMP指令中含有一个字节偏移量。 第二条JMP指令中含有两个字节偏移量。 第三条JMP指令中含有两个字节的偏移量及两个字节的段地址。2. G命令(执行) G命令用来启动运行一个程序或程序的一段,它是DEBUG程序进行程序调试的主要命令之一。它的格式如下: G = 其中,断点最多允许设置10个。如果G命令不带参数,则从头运行装入的程序,运行后仍返回DEBUG。如G命令后有断点地址,则程序执行到断点地址时暂停并显示出各寄存器状态。注意: 第一个参数=地址规定了程序执行的起始地址, 以CS内容作段地址, 等号后面的地址只需给出地址偏移量。 此时, 命令G与地址之间的等号不能省去。 如果在G命令执行前, 已经设置了CS值和IP值, 则也可以直接用G命令, 从指定地址执行程序。 格式中后面给出的地址是指断点地址, 最多可设置 10 个断点。 当程序执行到一个断点时, 就停下来, 显示CPU各寄存器的内容和标志位的状态, 以及下一条待执行的指令, 被调试程序的所有断点全部被取消, 并返回DEBUG。 地址参数所指的单元, 必须包含有有效的 8088 指令的第一个字节, 否则将产生不可预料的结果。 堆栈必须至少包含有 6 个可用字节, 否则也将产生不可预料的结果。 若断点地址只包括地址偏移量, 则认为段地址在CS寄存器中。 【例2】 例如,执行例1的小程序。-G=100 (从地址100H处开始执行)AX=8000BX=0200CX=0001DX=0001SP=FFEEBP=0000SL=0000 D1=0000DS=2A7DES=2A7D SS=2A7DCS=2A7DIP=010ENV UP EI PL NZ NA PO CY2A7D:010ECCINT33. T命令(跟踪执行) T命令用来逐条跟踪程序的执行,它的格式是: T=地址每条指令执行后,都要暂停并显示各寄存器的内容。跟踪执行实际上是单步执行。在分析程序时希望不断跟踪程序执行路径,从而分析出程序执行过程的细节。例如:-T=0100 3 格式(1): T =地址 该命令可以在指令执行中进行追踪, 若略去地址, 则从CS:IP现行值执行。 每一次T命令都执行一条指令,都要暂停并显示各寄存器的内容。 格式(2): T =地址跟踪命令条数值 此时,它可对多条指令进行追踪, 即在执行了由跟踪命令条数值所指定的若干条指令之后, 停止执行并显示各寄存器的内容和各标志位, 还指出下一条待执行的指令。4. U命令(反汇编)U命令可以对二进制代码程序作出反汇编,常用于分析和调试目标程序。U命令格式为:-U格式(1): U地址 该命令从指定的地址开始, 反汇编 16 个字节或 32 个字节。 若略去指定地址, 则以上一个U命令反汇编的最后一条指令地址的下一条指令地址作为起始地址; 若没有用过U命令, 则以由DEBUG初始化的段寄存器的值作段地址, 以 100 作为地址偏移量。 例如:反汇编前面汇编的程序:-U 100(从地址100H处开始执行)2A7D:0100 B80102MOV AX,0201;自动给出反汇编结果2A7D:0103 BB0002MOV BX,02002A7D:0106 B90100MOV CX,00012A7D:0109 BA0000MOV DX,00002A7D:010C CDL3 INT 132A7D:010E CCINT 32A7D:010F 020A ADD CL,BP+SI上述反汇编程序,在汇编程序和地址中间增加有B80102等内容,表示是二进制的机器码。注意,在反汇编过程中,如果源程序中有一段数据,则也被反汇编成“程序”,但读不懂,这时应越过这一段。此外,U命令不识别程序结束,因此必须给定结束位置的地址。格式(2): U范围这种格式的命令, 可以对指定范围的内存单元进行反汇编, 范围可以由起始地址、 结束地址(只能包含地址偏移量)或起始地址及长度来指定。 其命令格式如: U 04BA:100 0108 或 U 04BA:0100 L7 两者是等效的。 三、显示、修改内存和寄存器命令 程序中反汇编出来的数据不易读懂,必要时需用显示命令显示。此外,当需要修改内存中一些数据时,可以用修改内存命令进行操作。修改寄存器参数时,要使用寄存器命令。1D命令(显示内存) D命令是将调入内存的程序以十六进制形式以及对应的ASCII字符形式显示出来。格式如下: D或D其中,“地址”表示从该地址开始显示,若没有地址,则从当前地址显示;“范围”表示显示内存指定范围的内容,这里所说的范围包含起始地址和结束地址。起始地址可由段基址及段内偏移量两个部分组成, 中间用冒号:隔开, 也可以只指出段内偏移量, 而此时的段基址在DS中。此命令执行后,将从指定地址开始, 显示 40H个或 80H个字节的内容, 每一行的左边显示段内偏移地址, 接着显示 16 个单元的内容, 最右边区域则显示这一行的 16 个单元所对应的可显示的字符。 若无可显示的字符, 则用圆点(小数点)填充。 D命令中的地址可为段内偏移量, 也可为段基址和段内偏移量两部分, 中间用冒号隔开, 如 1660:0100, 即指段基址为 1660H, 段内偏移量为 0100H。 DEBUG中所显示的数据均为十六进制数, 且省去了后面的H标志。 例如:-D 100,200 表示显示内存地址100-200这一段的内容。 注意:DEBUG操作数一般是十六进制数。2E命令(将内容写入内存) 将内容写到指定地址处,命令格式如下: E其中,“地址”为写入内容的地址,“字节串”为写入的内容,没有字节串的格式,是一种交互式写入内容。格式(1): E 地址 内容表 它的功能是用给定的内容表去代替所指定的内存单元的内容。 例如: -E DS:0100 41 OPEN 41 该命令执行后, 将用列表中的 6 个字符填入从DS:0100 到DS:0105 的 6 个存储单元中。格式(2): E 地址 它的功能是可以连续地逐个修改内存单元的内容。 当屏幕上显示指定单元的地址和内容之后, 可采取下列办法: 若指定单元的内容需要修改, 则将新的内容的十六进制数输入, 再按空格键, 修改便告完成, 然后显示下一个存储单元的地址及内容, 若需要修改, 可进行同样的操作。 若某一个单元的内容不需要修改, 而操作又要进行下去, 则可直接按空格键 若需要显示前一个单元的地址和内容, 则输入连接号-; 若要修改, 则输入新的内容, 再按-键, 本次修改完成; 若显示前一个单元的地址和内容仍要修改, 则可进行同样的操作; 若显示的内容不需要修改, 则可直接按-键, 使该操作由高地址向低地址单元连续不断地进行。 按键, 结束E命令。 3R命令(修改寄存器) 显示寄存器的内容,然后修改其值。命令格式如下: R(显示所有寄存器和标志) R寄存器(显示指定寄存器) RF(显示所有标志)格式(1): R 显示寄存器内容时,首先显示13个16位寄存器的内容,随后是标志寄存器的内容,最后一行是下一条要执行的指令地址和指令内容。格式(2): R 寄存器名该格式可用于检查和修改指定寄存器的内容。 若不修改其内容, 可按键; 若需要修改其内容, 可以输入 1-4 个十六进制数, 再按键。例如:显示CX寄存器中的内容,并修改为0F: -R CX CX 0001 : 0F 格式(3): RF该格式可用于显示标志和修改标志位状态。 当系统给出标志位状态后, 可采取下列办法: 若不需要修改任一标志位, 可按键。 若需要修改一个或多个标志位, 可输入其相反的值. 各标志位之间可以无空格且与顺序无关, 修改后按键。 由于标志位状态显示时, 是用下列特殊符号表示的, 因而修改时, 只要输入规定的符号即可。 下面是标志名和状态符号的对照表: 标志名置 位符号复 位符号 溢出标志OF(是/否) OV NV 方向标志DF(减/增) DN UP 中断标志IF(允许/禁止) EI DI 符号标志SF(负/正) NG PL 零标志ZF(是/否) ZR NZ辅助进位标志AF(是/否) AC NA奇偶校验标志PF(偶/奇) PE PO进位标志CF(是/否) CY NC 只有追踪标志TF, 不能用指令直接修改。 例如: 输入RF命令, 系统可能作出如下响应: OV DN EI NG ZR AC PE CY- 若现在要修改奇偶、 零、 中断和溢出标志位, 可在光标处输入: PO NZ DI NV四、磁盘文件操作 利用DEBUG命令编写的小程序段运行无误之后,就可以将其存盘。1N命令(命名) 命名命令可用来设置文件名,以便于进行读写。格式如下: N 其中,“文件名”为用户指定的文件名。2W命令(写盘) 写盘命令是将当前内存指定长度的内容按N命令给出的文件名存入磁盘。格式如下: W 其中,“地址”是写盘内容在内存中的首地址(如果有磁盘参数,则按指定磁盘参数进行写盘操作);“盘号”为0表示A盘,为1表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双方合作利益合同范本
- 编剧应聘合同范本
- ktv管理股合同范本
- 澳洲股权转让合同范本
- 整体分包合同范本
- (完整版)物流与供应链管理作业和答案
- 委托收款三方协议书范本模板7篇
- 家庭教育心得体会例文10篇
- 前台年度工作计划怎么写(5篇)
- 纸杯游戏猜谜题目及答案
- 汽车贴膜合同协议书
- 2025年电信网上大学智能云服务交付工程师认证参考试题库-上(单选题)
- 图文快印公司机器操作规程复习课程
- 接警调度面试题及答案
- 课题开题报告:专精特新企业新质生产力的动态演化、形成机理与实践路径研究
- 2025新人教版语文七年级上册(全册)教案教学设计(有教学反思)
- 马克思主义政治经济学研究范式
- 2025年新人教版八年级下册物理全册教案
- 开学第一课的体育教案设计
- 2025年度高科技企业派遣研发人员合同范本
- 《汉字造字法》课件
评论
0/150
提交评论