实验一 汇编语言程序的调试与运行
实验1_认识汇编语言

实验一 认识汇编语言1.1 实验目的(1)理解汇编语言的概念及其与高级语言的区别(2)了解MASM6.11和TASM软件包的安装及配置(3)了解常用汇编语言集成环境(4)掌握汇编语言程序的上机过程1.2 预备知识1.2.1 系统环境对汇编语言的初学者来说,DOS环境的优点是:DOS操作系统简单,程序员可以管理系统的所有资源,访问和修改系统中的所有内存(包括内存控制块、中断向量表),直接对I/O端口进行读写,便于对知识的学习和理解。
其缺点是:单任务的DOS操作系统只有一个运行级别,任何进程与DOS操作系统都是同等级别的,致使系统中各个进程会相互影响。
如果某个进程死机,整个系统就会瘫痪。
但是DOS系统已经退出历史舞台,目前的学生只熟悉Windows环境而对DOS知之甚少,继续要求学生在DOS系统的命令行界面下编写和调试程序,无疑存在巨大的困难。
目前,IBM PC及其兼容机配置的Intel系列微处理器可以工作在实模式、保护模式和虚拟86三种模式下。
实模式是汇编语言入门的基础,是汇编语言教学中无法跨越的阶段。
了解实模式是理解内存分段式管理和寻址方式的基础。
保护模式是Windows系统的工作模式,虚拟86模式则是在保护模式下提供的模拟8086处理器工作的模式,为学习汇编语言提供了便利。
DOS汇编程序在Win32环境中运行时,操作系统会模拟实模式运行16位进程。
对于一些可能会影响整个操作系统工作的指令,windows操作系统会拒绝执行。
64位的Windows 环境则不提供16位应用的虚拟环境。
因此,采用Win32环境进行汇编语言程序的编辑工作,在虚拟控制台环境中学习(汇编、连接和调试)汇编语言是最佳方案。
下面我们将逐步给大家讲解如何安装和配置汇编语言的编译调试环境,并选择适合的编辑软件来组建汇编语言的集成环境。
最后,叙述如何使用Visual Studio 2008 Express作为汇编语言的工作环境。
1.2.2 汇编语言上机过程汇编语言程序需要经过编辑、汇编、连接、调试与执行等过程才能实现其具体功能。
汇编语言(王爽第三版)实验5编写、调试具体多个段的程序

汇编语⾔(王爽第三版)实验5编写、调试具体多个段的程序实验5 编写、调试具体多个段的程序⼀。
将下⾯的程序编译连接,⽤Debug加载、跟踪,然后回答问题。
assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axpush ds:[0]push ds:[2]pop ds:[2]pop ds:[0]mov ax,4c00hint 21hcode endsend start程序分析:由于是初次接触,我们逐步讲解,废话多点。
(1)此程序考察的是内存中数据段和栈段的定义。
程序共定义了1个数据段,data段,⾸先明确,在程序运⾏开始(标号start处),这个数据段就已经被定义好了,并且分配了内存空间,并赋值了。
⼀个栈段,stack。
同理这个数据段在没有被⼈⼯定义为栈结构时,也被定义好了。
并且分配了内存空间,并赋值了。
将此程序编译并连接后,使⽤debug调试,(这⾥需要注意,以下的段地址可能由于系统不同⽽有差异,主要是理解概念。
)E:\assembly>debug eee.exe-rAX=0000 BX=0000 CX=0042 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=0B55 ES=0B55 SS=0B65 CS=0B67 IP=0000 NV UP EI PL NZ NA PO NC0B67:0000 B8660B MOV AX,0B66程序分析:我们什么也没执⾏,此时我们在data段定义的数据在哪?在ds:0100H处(原来讲过,程序最开始时ds:00~ds:100H是留给程序与操作系统通讯使⽤的psp内存段,参见书中p92);也就是说我们在ds:100H、0B55:100H或0B65:00处可以看见这些定义的数据。
实验一Debug命令的使用

实验一Debug命令的使用实验一Debug命令的使用一、实验说明1、 DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。
在汇编语言程序调试中很常用。
DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。
DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。
DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。
(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。
2、 Debug的调入和退出以Windows环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态,如:C:\Documents and Settings\mjy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。
退出Debug的命令:Q3、 Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。
若不指定地址,则系统从默认的地址开始存放。
按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。
(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。
若未指定寄存器,则默认为显示所有寄存器的内容。
应用:常用于通过寄存器的值查看指令的执行结果。
(3)内存单元内容的命令E,格式为:- E 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。
微机原理实验报告

微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。
请编⼀程序将AX的内容和BX的内容进⾏交换。
请⽤堆栈作为两寄存器交换内容的中间存储单元,⽤DEBUG调试程序进⾏汇编与调试。
2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请⽤DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装⼊0AH、0BH、0CH、0DH、0EH。
在DEBUG状态下送⼊下⾯程序,并⽤单步执⾏的⽅法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3.设(AX)=0002H,编⼀个程序段将AX的内容乘10,要求⽤移位的⽅法完成。
三、思想描述实验内容1将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
计算机组成原理实验补充实验指导-实验1、2

实验一、实验箱介绍与DEBUG简单使用一、实验目的1)了解实验箱的构成2)掌握模型机的结构框图3)学会DEBUG的简单使用二、实验内容1.实验箱介绍图1-1 计算机组成原理实验箱图1-1给出了实验箱的结构图,构成部分均在实验箱的印刷电路板上标注,如:ALU Uint(算逻单元)、Input Device Unit(输入单元)、Switch Unit(控制开关单元)、Bus Unit(总线单元)……,同学们要结合计算机的组成原理,确定运算器、控制器、存储器、输入设备、输出设备等在实验箱中的位置。
2.模型机的框图图1-2 模型机框图图1-2给出了计算机模型机的框图,同学们在做实验时,要体会实验中数据的流向,以便对整机有一个完整的认识。
3.DEBUG的简单使用DEBUG须在DOS环境下运行。
具体操作可以在Windows操作系统的“开始”菜单的“运行”对话框中输入“CMD”(命令command)如图1-3所示。
图1-3 Windows的运行窗口Windows的“DOS”模式,如图1-4所示。
图1-4 Windows下的“DOS”模式输入命令DEBUG(调试),见图1-5.图1-5 DEBUG调试窗口DEBUG命令是在“-”下,由键盘键入的。
每条命令以单字母命令符开头,然后是命令的操作参数,操作参数与命令符之间用空格隔开,操作参数与操作参数之间用空格或逗号隔开,命令的结束符是回车键。
命令及参数的输入可以是大小写的结合。
Ctrl+Break键可中止命令的执行。
Ctrl+Num Lock键可暂停屏幕卷动,按任一键继续。
所用数均为十六进制数,不用加H。
有关DEBUG中的D(显示)、R(寄存器)、U(反汇编)、G(执行)和Q(退出)等命令已在前面讲过了。
下面介绍本实验用到的DEBUG的命令:(1)A-汇编,用于输入汇编语言源程序(2)g-运行,运行用A命令编写的汇编语言程序(3)e-编辑,用于修改计算机内存中存储单位的数据(4)d-显示,用于显示计算机内存中存储单位的数据(5)q-退出,用于退出DEBUG的状态,到DOS提示符下。
微机原理与接口技术实验DEBUG

实验二.调试程序DEBUG的主要命令实验目的:掌握调试程序DEBUG的使用方法。
实验内容:通过对一个汇编程序进行各种调试和检测,掌握调试程序DEBUG的使用方法。
DEBUG是为汇编语言设计的一种调试工具,主要用于检查、修改和执行汇编语言程序。
它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
DEBUG的作用:1.为用户提供一个可控制的交互式汇编语言运行环境,以控制和监督被调试程序的执行情况。
由于DEBUG操作容易,可以直接和计算机的寄存器以及内存打交道,可以用来汇编简单程序。
2.用户可以直接在程序中修改错误,并立即执行程序以判断这样的修改是否已经奏效,而不必对程序重新汇编来判断修改的效果。
3.DEBUG可以访问DOS的禁区,这样如果引导扇区遭病毒感染,还可以用DEBUG编程加以清除。
步骤:一.进入DEBUG (下文方括号中的项表示任选项,“<CR>”表示回车键)1.进入DOS2.进入C:盘ASM目录3.在DOS提示符下,键入命令debug [执行文件全名]〈CR〉(执行文件指“.exe”文件或“.com”文件)便可进入DEBUG。
若指定文件名,则将该文件调入DEBUG。
进入DEBUG后,出现“–”提示符,即可用DEBUG命令来调试程序。
二.DEBUG命令的规定:1.DEBUG命令中的所有字母大小写皆可;2.DEBUG命令中的数字都是十六进制的;3.DEBUG命令都是一个字母,后面有一个或多个参数;4.命令只有在按下回车键后才开始执行,任何一个命令都可以用CTRL+BREAK键来结束其执行,返回提示符“—”状态;5.命令和参数之间可以用定界符分隔,但只有在两个相邻的十六进制数之间的定界符才是必须的;6.在命令执行过程中,可以用CTRL+NUM LOCK键停止屏幕显示的卷动,以便于查看,按下任何其他键,继续卷动。
三.DEBUG的主要命令:1.显示∕改写寄存器内容命令R格式一:–r<CR> 功能:显示CPU内所有寄存器内容和标志位状态。
arm汇编语言编程实验报告

arm汇编语言编程实验报告实验二ARM汇编语言编程实验.doc班级计算机科学与技术(嵌入式)学号课程名称ARM体系结构姓名实验成绩日期指导教师冯灵霞实验报告院系信息工程学院一、实验目的1、掌握ADT IDEARM开发环境中基本的工程设置以及程序编译方法。
2、掌握ADT IDEARM开发环境中基本的程序调试方法。
3、掌握基本的ARM汇编语言编程方法。
二、实验内容用汇编语言编写一个程序实现如下目的:从源地址拷贝num个字(num*4个字节)的数据到目的地址dst中。
三、预备知识1、ARM汇编语言的基础知识。
2、程序调试的基础知识和方法。
四、实验设备1、硬件:JXARM9-2440教学实验箱、PC机。
2、软件:PC机操作系统Windows 98(2000、XP)+ADT IDE开发环境。
五、基础知识ADT IDE集成了GNU汇编器arm-elf-as、编译器arm-elf-gcc和链接器arm-elf-ld。
在ADT IDE中编写的程序必须符合GNU的语法规则。
下面介绍一些基本的GNU汇编知识以及本实验用到的ARM 汇编指令。
1、GUN汇编语言语法及规则1)_start_start为程序默认入口点,代码段默认起始地址为0x800,如果需要修改可以在链接脚本文件中指定。
2)标号语法:symbol:symbol为定义的符号。
说明:上述代码定义一个标号,它表示程序中当前的指令或数据地址。
如果在程序中出现两个相同的标号,汇编器将会产生一个警告,且只有第一个标号有效。
2、GNU汇编语言伪操作1).equ伪操作语法:.equ symbol,exprexpr为基于寄存器的地址值、程序中的标号、32位的地址常量或位的常量。
symbol为.equ伪操作为expr定义的字符名称。
说明:该操作符为数字常量、基于寄存器的值和程序中的标号定义一个字符名称,相当于C语言中的宏定义。
示例:.equ USERMODE,0x102).global伪操作符语法:.global symbolsymbol为声明的符号的名称。
大学微机原理实验报告(3篇)

第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。
2. 掌握微机硬件的基本操作和调试方法。
3. 熟悉汇编语言编程和程序调试技巧。
4. 通过实验加深对微机原理课程的理解,提高动手能力。
二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。
2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。
3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。
4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。
2. 编写程序实现字符串比较功能。
3. 编写程序实现乘除法运算。
三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。
- 使用示波器检测实验装置的信号是否正常。
2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。
- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 汇编语言程序的调试与运行 一、实验目的 1.熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 2.掌握数据在内存中的存放方式和内存操作数的寻址方式。 3.掌握汇编语言源程序的组成格式。 4.掌握8086/8088指令及伪指令的格式及用法。 5.掌握汇编语言源程序的编辑、调试及运行方法。
二、实验准备知识 1.DEBUG程序的启动 DEBUG是专门为汇编语言设计的一种汇编语言调试工具,它通过单步执行,设置断点连续执行等方式为汇编语言程序员提供了非常有效的调试手段。 在DOS提示符下,可输入命令: C>DEBUG [d:][path][文件名][ 参数1][参数2] 其中文件名是被调试文件的名称,它必须是执行文件(.EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“–”,此时,可键入所需的DEBUG命令。 在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改,显示和执行。如果没有文件名,则是以当前内存的内容进行工作。 2.DEBUG的主要命令 1)汇编命令A 格式:– A [起始地址] 功能:该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。 2)反汇编命令U (1)格式1:– U [起始地址] 功能:该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。 (2)格式2:– U [起始地址 终止地址] 格式3:– U [起始地址 L 字节数] 功能:该命令对指定范围的内存单元进行反汇编。例如: 3)运行命令G 格式:– G [= 起始地址1][断定点地址2[断点地址3„„]] 功能:从指定地址开始执行程序。在设定的断点处程序暂停,并显示全部寄存器内容和下一条要执行的指令。 一般设置断点前最好用U命令查看一下指令开始的地址。断点数最多为10个。 如: – G=100 108 4)跟踪命令(单步执行)T 格式1:– T [=起始地址] 格式2:– T [=起始地址 指令条数] 功能:从指定地址开始执行程序,每次执行一条指令,然后显示各寄存器的内容和状态寄存器的内容,及以助记符形式表示的下一条指令。 如: – T=100 5)显示内存单元内容的命令D 格式1:– D [起始地址] 格式2:– D [起始地址 终止地址] 格式3:– D [起始地址 L 字节数] 功能:显示指定内存单元的内容。 6)修改内存单元内容的命令E (1)用给定的内容代替指定范围的单元内容 格式:– E 地址 内容表 例如:– E 2000:0100 F3 "XYZ" 8D 其中F3、"X"、"Y"、"Z"和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,"X"、"Y"、"Z"将分别存入其ASCII码值。 (2)逐个单元相继地修改 格式 :– E地址 例如:– E 100 系统显示如下: 18E4:0100 89. 78 此命令是将原100号单元的内容89改为78,78是用户输入的。 7)检查和修改寄存器内容的命令R (1)显示CPU内部所有寄存器内容和标志位状态 格式:– R R命令显示中标志寄存器中各标志位状态的含义如表1所示。 表1 标志寄存器标志位含义 标 志 名 置位(1) 复位(0) 溢出Overflow(是/否) OV NV
方向Direction(减量/增量) DN UP
中断Interrupt(允许/屏蔽) EI DI
符号Sign(负/正) NG PL
零Zero(是/否) ZR NZ
辅助进位Auxiliary Carry(是/否) AC NA
奇偶Parity(偶/奇) PE PO
进位Carry(是/否) CY NC
(2)显示和修改某个指定寄存器内容 格式: – R 寄存器名 例如输入:–R AX 如显示如下: AX 2000 : 则表示AX当前内容为2000H,此时若不对其作修改,可按ENTER键;否则,输入修改后内容,如输入: :3000 则AX内容由2000H改为3000H。 (3)显示和修改标志寄存器 格式:– R F 如系统将显示如下: OV DN EI NG ZR AC PE CY – 这时若不作修改可按ENTER键,否则在“–”号之后键入修改值,键入顺序任意。如: OV DN EI NG ZR AC PE CY – PO NZ DI NV 8)退出DEBUG命令Q 格式:– Q 功能:退出DEBUG程序,返回DOS。 3.汇编语言源程序的分段结构 (1)段的定义 1)段定义伪指令:数据段、堆栈段、代码段的定义 2)段的定位类型、组合类型、段的别名的说明 (2)段寄存器的装入 1)指定段寄存器与段之间的对应关系伪指令:ASSUME 2)将段地址装入指定段寄存器:MOV指令 4.8086/8088的指令系统 (1)常用指令:掌握其格式及用法 1)数据传送类指令 ①数据传送:MOV(数据传送) ②数据交换:XCHG(数据交换) ③入栈及出栈:PUSH(入栈)、POP(出栈) 2)算术运算类指令 ①加法运算:ADD(加法运算)、ADC(带进位加法运算)、 INC(加1运算) ②减法运算:SUB(减法运算)、SBB(带借位减法运算)、DEC(减1运算) ③比较运算:CMP(数据比较,设置标志寄存器) 3)逻辑运算类指令 ①逻辑运算:AND(逻辑与)、OR(逻辑或)、XOR(逻辑异或)、NOT(逻辑非)、TEST(测试) ②移位运算:SHL(逻辑左移)、SHR(逻辑右移)、SAR(算术右移)、ROL(循环左移)、ROR(循环右移)、RCL(带进位循环左移)、RCR(带进位循环右移) 4)程序控制类指令: ①无条件转移指令:JMP(无条件转移) ②条件转移指令: 判断是否相等转移:JZ/JE(等于零/相等转移)、JNZ/JNE(不等于零/不相等转移) 判断无符号数大小转移:JA/JNBE(高于/不低于等于转移)、JAE/JNB(高于等于/不低于转移)、JB/JNAE(低于/不高于等于转移)、JBE/JNA(低于等于/不高于转移) 判断有符号数大小转移:JG/JNLE(大于/不小于等于转移)、JGE/JNL(大于等于/不小于转移)、JL/JNGE(小于/不大于等于转移)、JLE/JNG(小于等于/不大于转移) ③循环控制指令 循环转移指令:LOOP(CX≠0循环) 条件循环转移指令:LOOPZ/LOOPE(CX≠0且ZF=1循环) LOOPNZ/LOOPNE(CX≠0且ZF=0循环) 5)串操作类指令 ①数据串传送:MOVSB(字节操作)、MOVSW(字操作) ②数据串比较:CMPSB(字节操作)、CMPSW(字操作) ③数据串搜索:SCASB(字节操作)、SCASW(字操作) ④数据串存取:STOSB(字节操作)、STOSW(字操作)、LODSB(字节操作)、LODSW(字操作) ⑤重复前缀:REP(CX≠0重复执行串指令) REPZ/REPE(CX≠0且ZF=1时重复执行串指令) REPNZ/REPNE(CX≠0且ZF=0时重复执行串指令) (2)常用伪指令:掌握其格式及用法 1)数据定义伪指令:DB、DW、DD等 2)表达式赋值伪指令:EQU、= 3)定位伪指令:ORG 5.8086/8088常用运算符 1)算术运算符:+、-、*、/、MOD 2)逻辑运算符:AND、OR、XOR、NOT——注意与逻辑运算指令的区别 3)关系运算符:EQ、NE、LT、LE、GT、GE 4)数据返回运算符:TYPE、LENGTH、SIZE、OFFSET、SEG 5)属性运算符:PTR
三、实验性质 本实验为设计性实验。 四、实验学时 本实验学时为2学时。 五、实验内容与步骤 1、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。 2、程序框图 两个多位十进制相加的程序流程图如图30所示。 图30 两个多位十进制相加程序流程图 3、实验步骤 1.编辑源程序,建立一个以后缀为 .ASM的文件. 2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。 3.连接目标程序,产生可执行程序。 4.DEBUG调试可执行程序,记录数据段的内容。 5.在操作系统状态下,运行程序,并将记录屏幕显示内容记录到表2中。 表2 屏幕显示记录 被加数 加数 屏幕显示内容 12732 06815 10732 43691 65087 17631
六、实验要求 1.实验前要做好充分准备,包括汇编程序清单,调试步骤,调试方法,以