基本演示汇编语言实验操作方法
汇编语言实验4详细讲解

汇编语言实验4详细讲解一、引言汇编语言是一种底层的计算机语言,它直接操作计算机的硬件。
在汇编语言实验4中,我们将深入了解汇编语言的一些重要概念和技巧。
本文将详细讲解汇编语言实验4的内容,帮助读者更好地理解和应用汇编语言。
二、实验目的汇编语言实验4的主要目的是学习和掌握在汇编语言中使用条件和循环结构的方法。
通过实验,我们将能够编写能够根据条件执行不同操作的程序,并实现循环执行一定次数的功能。
三、实验内容1. 条件结构条件结构是根据条件的真假来执行不同的操作。
在汇编语言中,我们可以使用条件跳转指令来实现条件结构。
条件跳转指令根据条件寄存器的值来决定是否跳转到指定的地址执行。
常用的条件跳转指令有JZ、JNZ、JC、JNC等。
2. 循环结构循环结构是重复执行一段代码的结构。
在汇编语言中,我们可以使用循环指令来实现循环结构。
循环指令根据计数器的值来判断是否继续执行循环体,并在每次循环结束后更新计数器的值。
常用的循环指令有LOOP、LOOPE、LOOPZ、LOOPNE、LOOPNZ等。
四、实验步骤1. 定义和初始化计数器在循环结构中,我们首先需要定义一个计数器,并对其进行初始化。
计数器可以使用DX寄存器或AX寄存器来保存。
2. 执行循环体在循环结构中,我们需要执行的代码放在循环体中。
循环体的代码将会被重复执行,直到计数器的值为0或满足其他条件。
3. 更新计数器的值在每次循环结束后,我们需要更新计数器的值。
可以使用INC或DEC指令对计数器进行加1或减1操作。
4. 判断是否继续执行循环在每次循环结束后,我们需要判断是否继续执行循环。
可以使用循环指令来实现此功能。
根据计数器的值或其他条件来判断是否继续执行循环。
五、实验示例下面是一个简单的实验示例,演示了如何使用条件和循环结构来实现一个简单的程序:```MOV CX, 10 ; 初始化计数器为10MOV AX, 0 ; 将AX寄存器清零LOOP_START:ADD AX, CX ; 将CX的值加到AX中LOOP LOOP_START ; 循环执行,直到CX的值为0MOV BX, AX ; 将AX的值保存到BX寄存器中```在上面的示例中,我们首先将CX寄存器初始化为10,然后将AX 寄存器清零。
MASM615汇编语言实验步骤

退出编辑窗口
6、输入masm example1.asm回车
程序通过编译了。
7、输入link example1.obj回车,回车,回车,回车,回车
8、输入debug example1.exe回车
再输入U(查看反汇编命令,debug的调试命令,还有其他的)
MS-DOS Debug Commands
assemble
A
[address]
compare
C
range address
dump
D
[range]
enter
E
address [list]
fill
F
range list
go
G
[=address] [addresses]
hex
H
value1 value2
input
汇编语言实验步骤简单提示
1、点击桌面“ ”,选择“运行”,输入“CMD”后回车如:
2、 (假设masm615放在 )
3、输入:cd masm615 (回车)
4、 进入到编辑源程序的状态,跟TC界面是一样的。
实际上编辑Intel汇编语言源程序*.asm,可以用的记事本,不过记得把文件的后缀名改成asm,尤其不能留记事本的文件后缀名txt。
I
port
load
L
[address] [drive] [firstsector] [number]
move
M
range address
name
N
[pathname] [arglist]
output
O
byte
汇编语言程序设计的实验环境及实验步骤

汇编语言程序设计的实验环境及实验步骤1、汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 连接目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。
2、Windows环境下的汇编语言集成编程环境的使用实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)实验要求和目的1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用。
实验涉及的主要知识单元1、编辑源程序例如,编写程序,可以在DOS模式下用编辑程序edit.exe建立汇编语言源程序文件Hello.asm,注意文件名的扩展名必须是.asm。
也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“cmd”进入DOS模式,运行edit软件,例如:C:> edit hello.asm2、汇编语言源程序的汇编过程汇编程序调入后,首先显示版本号,然后出现三个提示行。
第一个提示行为:Object filename [HELLO.OBJ]:询问目标程序文件名,方括号内为机器规定的默认的文件名,通常直接按回车键,表示采用默认的文件名(如上所示)。
第二个提示行为:Source listing [NUL.LST]:询问是否建立列表文件。
若不建立,直接回车;若要建立,可以输入文件名hello再回车。
列表文件中同时列出源程序和机器语言程序清单,并给出符号表,有利于程序调试。
第三个提示行为:Cross-reference [NUL.CRF]:询问是否要建立交叉索引文件。
若不建立,则直接回车;若要建立,可以输入文件名。
实验2— 汇编语言上机过程

实验2 汇编语言上机过程一、实验目的掌握汇编语言上机过程,熟练使用EDIT,MASM,LINK,DEBUG命令。
二、实验内容在显示器上显示一段字符串。
三、实验步骤1、进入DOS ,输入D:回车2、输入D:\>CD MASM5输入D:\MASM5>EDIT 123.ASM此时进入EDIT全屏编辑窗口。
输入源程序,并且存盘。
ALT键可以激活菜单,打开FILE下拉菜单中的SA VE或SA VE AS保存编辑好的文件,然后退出。
此时,源程序建立完毕。
3、用MASM产生OBJ文件输入MASM 123.ASM 回车第一个是OBJ文件,回车确定,即建立目标文件。
第二个是LIST列表文件,它同时列出源程序和机器码程序清单,并给出符号表,如需要可输入123.LST,不需要直接回车。
第三个CRF文件用来产生交叉引用表,一般程序不需要建立此文件,直接回车。
注:警告错误和严重错误必须都为0,编译才算通过,如不为0,则记住错误行号,返回EDIT 修改程序,然后再编译。
4、用LINK程序产生EXE文件输入LINK 123.OBJ 回车LINK有两个输入文件OBJ(目标文件)和LIB(库文件),无特殊需要,对LIB直接回车。
LINK的输出文件,一个是EXE文件,另一个是MAP文件,它是连接文件的列表文件,称为连接映象,它给出每个段存储器的分配情况。
如没有严重错误,将产生EXE文件,如有错误重新执行步骤2、3、45、程序执行输入123.EXE 回车查看屏幕显示,是否和预期结果一致。
四、程序清单DA TA SEGMENTBUFF DB 'How are you!','$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV AH,9HMOV DX,OFFSET BUFFINT 21HMOV AX,4C00HINT 21HCODE ENDSEND START。
实验一 汇编语言上机步骤与DEBUG常用命令的使用

、实验一汇编语言上机步骤与DEBUG常用命令的使用【实验目的】(1)汇编语言源程序的编辑、汇编、连接的方法(2)掌握DEBUG常用命令的使用,如汇编命令A、反汇编命令U,查看寄存器命令R,查看内存单元命令D,修改内存单元命令E,填充内存单元命令F,设断点热行命令G及单步执行命令T等;DEBUG常用命令分类命令格式功能说明汇编与反汇编-A[地址] 从指定地址开始汇编程序地址默认值为:CS:IP-U[地址] 从指定地址开始反汇编32字节目标码-U 起始地址终止地址在指定地址范围内反汇编目标码运行与跟踪-G=起始地址][断点1…断点10]在指定地址开始执行到断点为止地址默认值为:CS:IP-T[=地址] 在指定地址执行一条指令后暂停-T[=地在指定地址执行n条指令后址]n 暂停存储单元读写移动比较与搜索-D[地址] 从指定地址开始显示80H字节存储单元内容地址默认值为:CS:IP-D起始地址终止地址显示指定地址范围内存储单元内容-E地址修改内容从指定地址开始逐个单元修改存储内容-S起始地址终止地址被查字符串从指定地址范围内查找字符串段地址默认值为DS寄存器读修改-R 显示所有寄存器的当前值-R 寄存器名显示指定寄存器的当前值,且可修改RF 显示F寄存器各标志位的当前值,且可修改输入输出-I端口地址读入端口地址中的值-O 端口地址值将指定值写到端口地址中退出-Q 结束DEBUG运行,返回DOS。
汇编语言实验教程-ddg

实验一:熟悉环境及DEBUG应用实验目的:1、复习C/C++的变量、地址、指针、内存空间等概念;2、熟悉基本的DOS命令;3、掌握DEBUG的启动及其使用方法与常用命令。
4、初步认识CPU的寄存器。
实验内容:一、C/C++语言回顾目的:通过C/C++的变量、地址、指针、内存空间等概念的回顾,了解计算机内数据的存放方式和访问方式。
1、编程定义一个整型int、一个双精度型double、一个字符型char的指针,并赋初值,然后显示各指针所指目标的值与地址,各指针的值与指针本身的地址及各指针所占字节数(其中地址用十六进制显示,注意字符指针输出是字符串,必须强制转换为无类型指针)。
要求运行结果如下所示:变量内容首地址长度(字节)cval ‘A’0x0012ff64 1类型:整型: int, short int, short, long int, long, unsigned int, unsigned short, unsigned long实型: float, double, long double字符型: char#include<iostream>using namespace std;int main(){int *ip,ival=100;double *dp,dval=99.9;char *cp,cval='A';ip=&ival;dp=&dval;cp=&cval;cout<<*ip<<'\t'<<&*ip<<'\t'<<sizeof(*ip)<<endl;cout<<*dp<<'\t'<<&*dp<<'\t'<<sizeof(*dp)<<endl;cout<<*cp<<'\t'<<(void*)&*cp<<'\t'<<sizeof(*cp)<<endl;//字符指针输出是字符串,必须强制转换为无类型指针cout<<*cp<<'\t'<<&*cp<<'\t'<<sizeof(*cp)<<endl;//输出A开头的字符串cout<<ip<<'\t'<<&ip<<'\t'<<sizeof(ip)<<endl;cout<<dp<<'\t'<<&dp<<'\t'<<sizeof(dp)<<endl;cout<<(void*)cp<<'\t'<<&cp<<'\t'<<sizeof(cp)<<endl;return 0;}2、编程定义一个一维数组、一个二维数组、一个字符串(字符数组)、一个结构体,并赋初值,然后显示各指针所指目标的值与地址,各指针的值与指针本身的地址及各指针所占字节数(长度)。
实验一-8086汇编语言上机调试及基本操作.

实验一:8086汇编语言上机调试及基本操作(验证性)1、实验目的:(1)掌握常用DEBUG命令: G,D,R,T,U,Q。
(2)掌握工具软件EMU8086。
(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
(4)掌握简单的数值转换算法2、实验说明:计算机中的数值有各种表达方式,这是计算机的基础。
掌握各种数制之间的转换是一种基本功。
3、程序框图:对于0-999(即000H-3E7H)范围内的二进制数4、参考程序:; 将AX中的三位数拆为三个BCD码, 并存入Result 开始的三个单元DATA SEGMENT; 数据段RESULT_1 DB 1RESULT_2 DB 1RESULT_3 DB 1DATA ENDSSTACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDSCODE SEGMENT; 代码段ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACKSTART:MOV AX, DATAMOV DS, AX ; 设置数据段MOV AX, STACKMOV SS, AX ; 设置堆栈段LEA SP, STACK_TOP ; 设置栈顶指针MOV AX, 2afHMOV CL, 100DIV CLMOV RESULT_1, AL ; 除以100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT_2, AL ; 余数除以10, 得十位数MOV RESULT_3, AH ; 余数为个位数MOV AX,4C00H ; 返回DOSINT 21H ;CODE ENDSEND START ; 最后一行要按回车键5、实验及报告要求:1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。
实验3 汇编语言程序生成的基本操作

实验3汇编语言程序生成的基本操作(参考教材12章实验二)
实验内容:
编写并输入源程序,并汇编、连接生成相应的exe程序,实现以下功能:在内存数据段中从有效地址为2000H处建立一个从0到99的数据区。
在源程序代码应包含实验学生的姓名、学号等签名信息。
实验目的:
(1)熟悉汇编语言源程序的一般结构和实现方法。
(2)熟悉常用伪指令的使用。
(3)掌握宏汇编程序MASM和连接程序LINK的使用方法和从源程序建立到生成可执行文件的汇编连接全过程。
(4)掌握用DEBUG调试程序技术,学会查看程序运行结果的正确性。
(5)给出书面报告,其中包含程序运行时界面拷贝,并能从中看到学生的签名信息。
参考程序:
DATA SEGMENT
SIGN DB 'ZhangZhiming',0DH,0AH,0AH,24H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,9
MOV DX,OFFSET SIGN
INT 21H
MOV AL,1
MOV BX,2000H
MOV CX,100
R1: MOV [BX],AL
INC AL
INC BX
LOOP R1
EXIT: MOV AH, 4CH
INT 21H
CODE ENDS
END START。
实验一 汇编软件使用与基本编程实验

实验一汇编软件使用与基本编程实验1.1 实验目的1. 熟悉8086汇编语言程序设计的实验环境。
2. 掌握汇编语言程序设计的上机步骤,初步学会利用Turbo Debugger 调试工具来调试汇编语言程序。
1.2 实验环境汇编语言程序设计的实验环境如下:1. 硬件环境微型计算机(Intel x86 系列CPU)1台。
2. 软件环境·Windows XP操作系统。
·任意一种文本编辑器,如EDIT、NOTEPAD(记事本)等。
·汇编程序,如MASM.EXE或TASM.EXE。
·连接程序,如LINK.EXE或TLINK.EXE。
·调试程序,如DEBUG.EXE或TD.EXE。
本实验指导中,文本编辑器使用NOTEPAD(记事本),汇编程序使用MASM.EXE,连接程序使用LINK.EXE,调试程序使用TD.EXE。
1.3上机步骤1.建立汇编语言程序设计的实验环境(1)通过WindowsXP的资源管理器找到D盘的根目录,在D盘的根目录窗口中点击鼠标右键,在弹出的菜单中选择“新建”→“文件夹”选项,新建一个文件夹,并把新建的文件夹命名为ASM。
该目录就为以后源程序的存放目录。
(2)把MASM.EXE、LINK.EXE、TD.EXE都拷贝到新建的ASM目录中。
2.建立ASM源程序在WindowsXP桌面的“开始”菜单中选择“程序”→“附件”→“记事本”选项,屏幕上出现记事本的编辑窗口。
在编辑窗口输入源程序代码。
在输入、编辑源程序的过程中,可充分利用记事本的“编辑(E)”菜单中“剪切”、“复制”、“粘贴”和“撤消”等功能。
源程序输入完毕后,选择记事本的“文件(F)”菜单,用其中的“保存(S)”功能将文件存盘。
这时会弹出一个“另存为”窗口,在这个窗口中将保存源程序的路径选择为前面建立的D:\ASM目录,“保存类型(T)”选择为“所有文件(*.*)”,文件名为HELLO.ASM(本例为D:\ASM\HELLO.ASM),如图1-1所示。
实验1汇编语言实验环境与基本操作

实验1 汇编语言实验环境与基本操作班级:计科(高职)12-2 姓名:韩长莉学号: 201203014062 上机时间: 2014.4.14 上机地点:一机房指导老师:尉秀梅一.实验目的:1.学习debug的主要用法,熟悉R,D,E,U,T,A等常用的命令。
2.理解堆栈的工作原理,push和pop指令的执行步骤。
3.掌握一个完整的汇编程序从写出到执行的过程,熟悉用debug跟踪程序的执行过程。
二.实验内容:1.查看cpu和内存,用机器指令和汇编指令编程(p35)2.用机器指令和汇编指令编程(p71)3.编程、编译、连接、跟踪(94页)三.实验步骤1.查看cpu和内存,用机器指令和汇编指令编程(p35)(1)使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,cpu中相关寄存器中内容的变化。
提示:可用E命令和A命令,以两种方式将指令写入内存。
注意用t命令执行时,cs:ip的指向。
写清楚具体用这两种方式的操作方法。
C:\Users\Administrator>debug-e 1000:0 b8 20 4e 05 16 14 bb 00 20 01 d8 89 c3 01 d8 b8 1a 00 bb 26 00 00 d8-u 1000:01000:0000 B8204E MOV AX,4E201000:0003 051614 ADD AX,14161000:0006 BB0020 MOV BX,20001000:0009 01D8 ADD AX,BX1000:000B 89C3 MOV BX,AX1000:000D 01D8 ADD AX,BX1000:000F B81A00 MOV AX,001A1000:0012 BB2600 MOV BX,00261000:0015 00D8 ADD AL,BL1000:0017 28752D SUB [DI+2D],DH1000:001A 807C0429 CMP BYTE PTR [SI+04],291000:001E 7554 JNZ 0074-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=13C0 IP=0100 NV UP EI PL NZ NA PO NC13C0:0100 0000 ADD [BX+SI],AL DS:0000=CDCS13C0:1000-ripIP 0100-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0000 NV UP EI PL NZ NA PO NC1000:0000 B8204E MOV AX,4E20-tAX=4E20 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0003 NV UP EI PL NZ NA PO NC1000:0003 051614 ADD AX,1416-tAX=6236 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0006 NV UP EI PL NZ NA PE NC1000:0006 BB0020 MOV BX,2000-tAX=6236 BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0009 NV UP EI PL NZ NA PE NC1000:0009 01D8 ADD AX,BXAX=001A BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0015 OV UP EI PL NZ NA PE CY1000:0015 00D8 ADD AL,BL-tAX=0040 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0017 NV UP EI PL NZ AC PO NC1000:0017 28752D SUB [DI+2D],DH DS:002D=0D-e 1000:17 00 dc 00 c7 b4 00 00 d8 04 9c-u 1000:171000:0017 00DC ADD AH,BL1000:0019 00C7 ADD BH,AL1000:001B B400 MOV AH,001000:001D 00D8 ADD AL,BL1000:001F 049C ADD AL,9C1000:0021 44 INC SP1000:0022 032C ADD BP,[SI]1000:0024 30724D XOR [BP+SI+4D],DH1000:0027 3C07 CMP AL,071000:0029 7749 JA 00741000:002B A2A756 MOV [56A7],AL1000:002E FE064057 INC BYTE PTR [5740]1000:0032 83C605 ADD SI,+051000:0035 813C2C53 CMP WORD PTR [SI],532CAX=0040 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0017 NV UP EI PL NZ AC PO NC1000:0017 00DC ADD AH,BL-rcsCS 1000:1000-ripIP 0017:0-rAX=0040 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0000 NV UP EI PL NZ AC PO NC1000:0000 B8204E MOV AX,4E20-tAX=4E20 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0003 NV UP EI PL NZ AC PO NC1000:0003 051614 ADD AX,1416-tAX=6236 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=0006 NV UP EI PL NZ NA PE NC1000:0006 BB0020 MOV BX,2000-AX=2640 BX=4026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=001B NV UP EI PL NZ NA PO NC1000:001B B400 MOV AH,00-tAX=0040 BX=4026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=001D NV UP EI PL NZ NA PO NC1000:001D 00D8 ADD AL,BL-tAX=0066 BX=4026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13C0 ES=13C0 SS=13C0 CS=1000 IP=001F NV UP EI PL NZ NA PE NC1000:001F 049C ADD AL,9C-t(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
基本演示汇编语言实验操作方法

基本演示1汇编语言实验操作方法一.实验的基本方法(MASM宏汇编子目录下)1.在DEBUG下运行汇编指令或简单小程序在DEBUG提示符下,用汇编命令A:输入汇编指令或简单小程序,用单步命令T 或全程命令G来执行,并检查执行中间结果与最后结果。
2.标准汇编程序上机方法A.建立ASM文件,用全屏幕编辑文件或其他编辑文件建立扩展名为ASM的源程序.B.用MASM(或ASM)产生扩展名为OBJ目标文件。
C.用LINK产生扩展名为EXE可执行文件。
D.在DEBUG下,把文件调入内存,调试程序。
E.在DOS下可直接执行扩展名为EXE的文件。
(详细过程)二.汇编语言的工作环境.A.硬件环境IBM-PC及其系列机内存256K字节以上外存:硬盘或至少一个软驱CPU:80586以上显示器:单色或彩色显示器键盘:标准ASCII码键盘B.软件环境编缉程序:或其他编缉程序汇编程序:MASM.EXE或ASM.EXE连接程序:LINK.EXE调试程序:或DEBUG.EXEA命令在命令A后跟地址,按回车输入程序,可以连续输入,当按下回车后,就退回到DEBUG下。
T命令T命令为跟踪命令。
G命令该地址指定了运行的起始地址,如不指定则从当前的cs:ip开始运行EDIT.EXE怎样生成.exe文件生成.obj文件基本演示2DEBUG命令的使用A.程序调用命令C>DEBUG[D:][PATH][FILENAME[.EXT]][PARM1][PARM2]其中,文件名是被调试文件的名字。
如未键入文件名。
可用DEBUG命令N和L 把需要文件装入存储器后再调试。
D指定驱动器,PATH为路径,FILENAME为文件名,PARM为命令参数B.显示存储单元命令-D[ADDRESS]或;ADDRESS地址-D[RANGE];RANGE范围C.修改存储单元内容命令-E ADDRESS[LIST]D.检查和修改寄存器内容命令-R[REGISTER NAME];Register name寄存器名字E.汇编命令-A[ADDRESS]F.跟踪命令-T[=ADDRESS][VALUE];Value变量值G.运行命令-G[=ADDRESS][ADDRESS2[ADDRESS3]H.反汇编命令-U[ADDRESS]-U[RANGE]I.命名命令-N FILESPECS[FILESPECS]FILESPECS的格式可为[D:][PATH]FILENAME[.EXT]J.装入命令-L[ADDRESS[DRIVE SECTOR SECTOR]];DRIVE SECTOR磁盘扇区K.写命令W ADDRESS DRIVE SECTORL.退出命令-QD命令D命令为显示存储单元的命令,.表示不可显示的字符如果只指定首地址,则显示从首地址开始的80个字节的内容。
汇编语言上机指导及例示(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言上机指导及例示、习题从如何建立源文件到进行调试作下简要的介绍,并配例题说明。
由于本人水平有限,在下文在如有错误及可以进一步修改的地方请大家指出汇编语言上机过程:一、上机前的软件准备:MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等)文本编辑器(如: , TURBO.EXE , TC.EXE , C.EXE 等)汇编程序(如:MASM.EXE , ASM.EXE 等)连接程序(如:LINK.EXE 等)调试程序(如:DEBUG.EXE 等)二、汇编程序建立过程:a.建立汇编源程序─通过───→b.编译为目标文件─↓┬─→d.连接为可执行文件↑│ c.不通过,重新修改(语句错误)↓├──────────────────────┘↓↑ f.不正确,用调试工具调试,重新修改(逻辑错误)↓└────────────────────────────←e运行↓正确g.完成三、现在对(二)的每一个标有字母的过程(PROCEDURE)进行详细说明PROCEDURE a:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。
将源程序代码录入计算机的方法很多,下面将介绍具体方法。
1.通过MD-DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。
存盘后在DOS下可用DOS命令DIR来查看,如果看到了所存的文件存在,就可以进行进程b。
2.如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。
汇编语言实验

实验一汇编语言源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。
三、实验仪器微机一台,软盘一块。
四、实验步骤1.开机和关机操作顺序开机:先打开微机外部设备电源开关,如显示器、打印机,最后打开主机电源开关。
关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。
2. 开机之后,把已准备好的PC-DOS系统软盘插入到A驱动器中,等待微机系统自检完成。
若自检无故障,计算机将自动引导A驱动器的DOS操作系统,实现DOS系统的启动,并出现提示符:A >若微机系统带有硬盘驱动器,且PC-DOS操作系统已装入硬盘,机器自检后(A驱动器门应打开),可以在硬盘上直接启动PC-DOS操作系统,此时,出现提示符:C >若计算机启动、自检出现故障,不能启动DOS系统时,可同时按下Ctrl+Alt+Del三个键,再重新启动一次(热启动),或关断主机电源重新送电一次(冷启动),若再失败,说明主机确有故障,应停止上机。
3. 装入DEBUG程序若计算机系统启动正常,可以从磁盘上调用DEBUG程序到内存。
一般C盘上或PC-DOS软盘上装有DEBUG软件,若没有,可以用COPY命令从其它盘拷贝过来,然后从装有DEBUG的磁盘上调用DEBUG程序。
例如:C > DEBUG↙(↙回车符)-(-DEBUG 提示符)或A > DEBUG-当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。
《汇编语言上机环境及基本步骤》实验报告

汇编语言上机环境及基本步骤一、实验目的:1.掌握编写汇编源程序的基本格式。
2.熟悉汇编语言上机环境。
3.掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4.掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。
二、实验内容:在屏幕上显示并打印字符串“This is a sample program.”三、实验仪器微机一台四、实验步骤:1.在某盘如E盘,以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE等复制到该目录下,编辑的源文件也保存到该目录下。
从WINDOWS进入DOS环境:C:\>2.用EDIT编辑SW1.ASM源文件。
(1). 从当前目录进入自己的目录下,C:\>E: 回车E:\> CD zhangsan ↙回车键入EDIT并回车:E:\ zhangsan>EDIT根据菜单提示进行各种操作。
(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非常方便。
说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。
(3).编辑新文件:a、在EDIT编辑器中输入汇编源程序。
b、检查输入有无错误。
c、打开文件菜单FILE→选择另存为SA VE AS┅→输入文件名为:SW1.ASM→保存。
注意:保存到你自己的文件夹中d、若需要修改此文件,用FILE菜单→选择打开OPEN→输入文件名SW1.ASM,即可修改。
修改后注意重新再存盘。
(4).编辑汇编源程序a、在EDIT(或记事本)中输入源程序。
b、检查。
c、存盘。
可保存为SW1.ASM3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。
(1).一般简单程序只需生成.OBJ文件,可键入简化命令:E:\zhangsan>MASM SW1;↙若有错误,则显示错误行号及错误性质,如:SW1.ASM(5):error A2006:undefined symbor:xxxx(2).若有错重新进入EDIT进行修改。
计组实验报告基础汇编语言程序设计实验

基础汇编语言程序设计实验【实验目的】1.了解教学计算机的指令格式、指令编码、选择的寻址方式和每一条指令的具体功能,为进一步学习运算器组成和控制器设计打好基础。
2.了解汇编语言的语句与机器语言的指令之间的对应关系,了解伪指令在汇编过程中的作用。
3.学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地位和作用。
【实验内容】1.学习联机使用TH-UNION+教学实验系统和仿真终端软件PCEC.2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容。
3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;【实验内容】1.用R命令查看寄存器内容或修改寄存器的内容1)在命令行提示符状态下输入:R↙;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格2.用D命令显示存储器内容在命令行提示符状态下输入:D 2000↙3. 用E命令修改存储器内容在命令行提示符状态下输入:E 2000↙4.用D命令显示这几个单元的内容D 2000↙可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。
5. 用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。
1)在命令行提示符状态下输入:A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始2)用U命令反汇编刚输入的程序在命令行提示符状态下输入:U 2000↙在相应的地址会得到输入的指令及其操作码3)用G命令运行前面键入的源程序G 2000↙4)用P或T命令,单步执行这段程序,观察指令执行结果在命令行提示符状态下输入:T 2000↙<12020:MVRD R2,00OA2022:MVRD R0,00302024:OUT 802025:DEC R22026:JRZ 202E2027:PUSH R02028:IN 812029:SHR R0202A:JRNC 2028202B:POP R0202C:INC R0202D:JR 2024202E:RET202F:↙<2(2100) MVRD R2,001AMVRD R0,0041(2104) OUT 80DEC R2JRZ 210EPUSH R0(2108)IN 81SHR R0JRNC 2108POP R0INC R0JR 2104(210E)RET【实验结果】<1屏幕上输出'0'到'9'十个数字符<2屏幕上显示“A”~“Z”26个英文字母【实验过程中遇到的问题以及解决办法】在验证例3的实验时,输入语句“JC 2053”,执行时系统一直提示有错误,无法进行运算查表得知语句中没有JC ,只有JRC,所以修改语句即可解决。
汇编语言实验报告

汇编语言实验报告实验一、汇编运行环境及方法、简单程序设计一、程序说明本程序用来比较两个字符串string1和string2所含的字符是否相同。
若相同’,否则显示‘No match’。
则显示‘Match在程序的数据段先定义两个字符串string1和string2,再定义两个字符串mess1’和‘Nomatch’。
再代码段比较字符串string1和string2,和mess2,分别代表‘Match通过比较判断是否相同。
若相同则显示‘Match’,否则显示‘No match’。
二、调试说明再EDIT中建立ASM文件,再用汇编程序对源程序汇编产生目标文件Obj,再用连接程序产生执行文件EXE。
再用Debug进行调试。
其中常用到的指令有:用-g命令来用运行程序,用-u命令来显示程序,用-d 命令来查看数据段的情况,-e或-f命令来修改需要改正的部分,用-t指令来逐步执行程序,用-r指令来查看寄存用器和修改寄存器的值,-q命令用来退出debug程序。
在这些命令的后面加上地址,可以将命令执行到相应的地方。
如用-g指令运行程序后,再用-u指令显示程序的执行借给如下:若将string2改为'Move the cursor backwards.',程序的其他部分不做改动,执行结果:若将mov cx,25语句改成mov cx,24,结果为:此时少做了一次循环,得到的结果就不正确了。
实验二、用DEBUG编程:使用堆栈段将AX和BX的内容进行交换等一、程序说明本实验包括两个部分,第一个部分是将AX和BX的内容进行交换,并用堆栈作为两寄存器交换内容的中间存储单元;第二部分是用DEBUG的命令将存储器偏移地AH, 0BH,0CH,0DH,0EH。
在DEBUG状态址300H,304H连续单元顺序装入0 下送入给出的程序中。
第一个程序先将AX的内容进栈,然后将BX的内容赋给AX,再将出栈的内容赋给BX即可。
第二个程序是在进入debug后,用-a指令输入给出的程序,然用-r指令安要求修改内存的内容,再用-t指令逐步执行每条指令,看修改的内存内容对指令执行结果的影响。
实验三 汇编语言程序上机操作方法

一 T AX=0233 BX=0000 CX=0011 DX=0038 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=000B NV UP EI PL NZ NA PO NC_ 0B75:000B CD21_ INT_____21_ ・ 在_DEBUG_状态下执行程序 一 G 8 Program terminated normally ・ 退出 DEBUG 一 Q_ 2. 比较字符串_bjchx_ 编写一程序,比较两个字符串_string1_和 _string2_所含的字符是否相同,若相同则显示‘Match’ ,否则,显 示‘No_Match’ 。 参考程序如下:(程序名:SY3-2.ASM) D_SEG SEGMENT STRING1 DB '12345' STRING2 DB '1a345' MATCHSTR DB 'MATCH$' NOMATCHSTR DB 'NO MATCH$'
实验注意事项 1.如果使用的是 MASM5.1 的汇编工具,应包括以下文件:MASM 宏汇 编程序文件 LINK 连接程序文件CREF 索引程序文件(也可不用) EDIT 全屏幕文本编辑程序(或其他文字处理系统) 2.能用宏汇编通过的汇编语言源程序与在 DEBUG状态下运行的汇编 语言程序不同,必须是一个完整的程序,有各逻辑段的定义,而在 DEBUG 状态下运行的汇编语言源程序只是其程序段。 3.连接程序 LINK 是把一个或多个独立的目标程序模块装配成一个 可重定位的可执行文件,扩展名为.EXE。 实验与思考 1. 机器语言(Machine Language)、汇编语言(Assembler Language) 和高级语言(High_Level_ Language)的区别? 2.DOS 2 号功能调用和 DOS 9号功能调用的区别? 3.利用 DEBUG 调试程序过程中,应注意什么?
基础汇编语言程序设计实验指导

基础汇编语言程序设计实验目的:1.学习和了解TEC-2000 十六位机监控命令的用法;2.学习和了解TEC-2000 十六位机的指令系统;3.学习简单的TEC-2000 十六位机汇编程序设计;实验内容:1.使用监控程序的R 命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;2.使用A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T命令单步运行并观察程序单步执行情况;3、执行下面程序,查看执行过程。
4、编写汇编语言程序,实现100(十进制)以内两位数的乘法运算,例如输入“8*9=”同步显示8*9=后接着显示72,即“8*9=72”;如果输入“12*12=”则显示“12*12=144”。
实验要求在使用该教学机之前,应先熟悉其的各个组成部分,及使用方法。
十六位教学机的汇编语言程序设计举例例子1:设计一个小程序, 在屏幕上输出显示字符‘6’。
A 2000 ;地址从16进制的2000(内存RAM区的起始地址)开始2000: MVRD R0, 0036 ;把字符‘6’的ASCII 码送入R02002: OUT 80 ;在屏幕上输出显示字符‘6’,80 为串行接口地址2003: RET ;每个用户程序都必须用RET 指令结束2004:(按回车键即结束输入过程)这就建立了一个从主存2000h 地址开始的小程序。
在这种方式下, 所有的数字都约定使用16 进制数,故数字后不用跟字符h。
每个用户程序的最后一个语句一定为RET汇编语句。
因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET 语句结束, 才能保证程序运行结束时能正确返回到监控程序的断点, 保证监控程序能继续控制教学机的运行过程。
下面接着再给出几个小程序的例子。
例子2: 设计一个小程序, 用次数控制在终端屏幕上输出'0'到'9'十个数字符。
A 2020MVRD R2,00OA ;送入输出字符个数MVRD R0,0030 ;“0”字符的ASCII 码送寄存器R0OUT 80 ;输出保存在R0 低位字节的字符DEC R2 ;输出字符个数减1JRZ 202E ;判10 个字符输出完否,已完,则转到程序结束处PUSH R0 ;未完,保存R0 的值到堆栈中(2028)IN 81 ;查询接口状态,判字符串行输出完成否,SHR R0 ;JRNC 2028 ;未完成, 则循环等待POP R0 ;已完成, 准备输出下一字符并从堆栈恢复R0的值INC R0 ;得到下一个要输出的字符JR 2024 ;转去输出字符(202E) RET这个程序只使用基本汇编语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本演示1汇编语言实验操作方法一.实验的基本方法(MASM宏汇编子目录下)1.在DEBUG下运行汇编指令或简单小程序在DEBUG提示符下,用汇编命令A:输入汇编指令或简单小程序,用单步命令T 或全程命令G来执行,并检查执行中间结果与最后结果。
2.标准汇编程序上机方法A.建立ASM文件,用全屏幕编辑文件或其他编辑文件建立扩展名为ASM的源程序.B.用MASM(或ASM)产生扩展名为OBJ目标文件。
C.用LINK产生扩展名为EXE可执行文件。
D.在DEBUG下,把文件调入内存,调试程序。
E.在DOS下可直接执行扩展名为EXE的文件。
(详细过程)二.汇编语言的工作环境.A.硬件环境IBM-PC及其系列机内存256K字节以上外存:硬盘或至少一个软驱CPU:80586以上显示器:单色或彩色显示器键盘:标准ASCII码键盘B.软件环境编缉程序:或其他编缉程序汇编程序:MASM.EXE或ASM.EXE连接程序:LINK.EXE调试程序:或DEBUG.EXEA命令在命令A后跟地址,按回车输入程序,可以连续输入,当按下回车后,就退回到DEBUG下。
T命令T命令为跟踪命令。
G命令该地址指定了运行的起始地址,如不指定则从当前的cs:ip开始运行EDIT.EXE怎样生成.exe文件生成.obj文件基本演示2DEBUG命令的使用A.程序调用命令C>DEBUG[D:][PATH][FILENAME[.EXT]][PARM1][PARM2]其中,文件名是被调试文件的名字。
如未键入文件名。
可用DEBUG命令N和L 把需要文件装入存储器后再调试。
D指定驱动器,PATH为路径,FILENAME为文件名,PARM为命令参数B.显示存储单元命令-D[ADDRESS]或;ADDRESS地址-D[RANGE];RANGE范围C.修改存储单元内容命令-E ADDRESS[LIST]D.检查和修改寄存器内容命令-R[REGISTER NAME];Register name寄存器名字E.汇编命令-A[ADDRESS]F.跟踪命令-T[=ADDRESS][VALUE];Value变量值G.运行命令-G[=ADDRESS][ADDRESS2[ADDRESS3]H.反汇编命令-U[ADDRESS]-U[RANGE]I.命名命令-N FILESPECS[FILESPECS]FILESPECS的格式可为[D:][PATH]FILENAME[.EXT]J.装入命令-L[ADDRESS[DRIVE SECTOR SECTOR]];DRIVE SECTOR磁盘扇区K.写命令W ADDRESS DRIVE SECTORL.退出命令-QD命令D命令为显示存储单元的命令,.表示不可显示的字符如果只指定首地址,则显示从首地址开始的80个字节的内容。
如果完全没有指定地址,则显示上一个D命令的显示的最后一个单元后的内容。
E命令当输入d100时,段地址中0100的首地址是B8,当键入e010066时,段地址中0100的值变为66R命令R命令为检查和修改寄存器内容的命令,如图所示为显示CPU内所有寄存器内容和标志位的状态。
在命令A后跟地址,按回车输入程序,可以连续输入,当按下回车后,就退回到DEBUG 下。
T命令T命令为跟踪命令。
该地址指定了运行的起始地址,如不指定则从当前的cs:ip开始运行U命令U命令为反汇编命令,从指定地址开始,反汇编32个字节,如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
N命令l命令先用n命令命名,再打入l命令,就掉入了该程序,按t或者u命令就可以查看了。
w命令先用n命令在d盘命名一个文件名为a1.asm的文件,设置其长度bx和cx,(bx 表示高八位,cx表示低八位,介入命令w200,即从偏移地址200写入内存。
Q命令退出DEBUG,返回DOS。
本命令并无存盘功能,如需存盘应先使用命令。
基本演示3汇编语言指令练习1.实验目的A.掌握DEBUG中汇编命令A,反汇编命令U,单步命令T,显示存储单元命令D,修改存储器单元命令E,修改与显示寄存器单元命令R,退出Q等命令的用法.B.熟悉汇编中传送、逻辑等指令。
C.了解指令不同的寻址方式,注意规定或限制使用的寄存器如:双操作数指令中,源操作数和目的操作数的地址不能同时为存储器地址,段跨越前缀不能使用CS,操作对象是地址还是地址中的内容,指令隐含使用的寄存器..2.实验要求A.对DEBUG中A,U,T,D,E,R,Q等命令按不同用法进行练习.B.汇编中传送、逻辑等指令.3.实验指令内容A.MOV.PUSH.POP.B.AND.OR.XOR.TEXT.C.ADD.SUB.D.MUL.DIV.4.实验准备A.认真阅读本实验指导.B.按实验内容要求,理解指令功能,编写不同寻址方式的指令清单5.实验步骤A.在DOS提示符下,在MASM子目录下,按DEBUG及回车.B.在DEBUG提示符下,按A进入小汇编,输入源指令.C.用U反汇编,检查输入源指令是否正确,用T或G,调试与运行指令.D.检查指令运行结果,用E,R检查与修改内存,寄存器内容.E.重复B.C.D过程.6.实验报告A.目的,要求,内容及算法思想.B.不同寻址方式,注意规定或限制使用的寄存器.C.指令清单.D.实验心得.Mov输入mov ax,2000,按回车输入T命令,则ax中的内容变为2000,当输入mov ax,6666后,在输入T命令,ax中的内容变为6666push输入push ax后,堆栈寄存器地址减一,就是原来sp为FFEE,执行进栈指令后,在输入T命令,就可以看见sp变为FFECpop出栈指令pop就是使堆栈寄存器加一,就是说,原来执行进栈指令后,sp变为FFEC,指令出栈指令后sp变为FFEEand开始用T命令可以看见ax中的内容为00e3,输入and bx,0,使bx和0进行逻辑与,在用T命令查看,就可以看见则bx的内容变为0003Or先将ax的内容变为21,执行or ax,10逻辑或命令后,用T命令就可以看见ax 中的内容就变为了0031Xor先将ax赋为11,执行xor ax,03异或指令,用T命令就可以看见ax中的内容变为0012Test先使bx的内容变为0e3,执行测试命令test,这时用T命令就可以看见bx中的内容就变成了00e3add开始dx中的内容为3742,输入add dx,1111时,用T命令就可以看见dx的内容变为4853Sub开始dx中的内容变为3000,输入sub dx,1001时,用T命令就可以看见dx中的内容变为1FFFmul开始时ax中的值是2,bl中的值是3,当执行mul bl时,用T命令就可以看见ax中的值就变成了6Div开始时ax中的值是10,bl中的值是2,当执行div bl时,用T命令就可以看见ax中的值就变成了5基本演示4顺序程序设计1.实验目的掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图.说明流程图中各功能的含义和表示法。
分配工作单元和存储空间。
根据程序算法流程选择合适的指令编制汇编语言源程序。
本实验着重掌握顺序程序的设计基本方法和技巧。
2.实验要求A.程序要结构化:简明、易读和易调试B.执行速度较快C.占用存储空间较少3.实验内容A:基本题:编一段程序,在内存中自SQTAB(0200H)地址开始的连续10个单元中存放0-9的平方值。
要求利用简单的查表法NUM(0210)单元中指定数(0-9)的平方值,并将所求平方值存入RESULT(0211)单元。
B:选做题:将一字节压缩BCD码转换为二个ASCII码。
4.实验准备A.认真阅读本实验指导B.按实验内容要求,确定算法,画流程图,编写程序.5.实验步骤A.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.B.调试与运行程序:用单步,短点,连续等方法调试与运行程,根据存储器,寄存器与标志位的内容与变化.如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.C.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.6.实验报告A.目的,要求,内容及算法思想.B.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.C.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.D.实验心得及有意义的建议基本演示5分支程序设计1.实验目的掌握分支程序设计的原理和方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧.2.实验要求A.如何产生条件B.如何对条件进行判断C.如何实现分支3.实验内容A.基本题:用地址表法,完成下面要求的多分支程序的设计。
根据MODE单元中的模式字(0-7)分别转向L0-L7标号处执行。
L0-L7处分别完成显示‘0’-‘7’字符既:当MODE=0时,转L0标号,完成显示‘0’.当MODE=1时,转L1标号,完成显示‘1’.当MODE=2时,转L2标号,完成显示‘2’.当MODE=3时,转L3标号,完成显示‘3’.当MODE=4时,转L4标号,完成显示‘4’.当MODE=5时,转L5标号,完成显示‘5’.当MODE=6时,转L6标号,完成显示‘6’.当MODE=7时,转L7标号,完成显示‘7’.B.选做题:统计学生成绩,分别统计低于60分,60—69分,70—79分,80-89分,90-99分及100分的人数,并存放到S5,S6,S7,S8,S9及S10单元中。
4.实验准备A.认真阅读本实验指导B.按实验内容要求,确定算法,画流程图,编写程序.5.实验步骤A.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.B.调试与运行程序:用单步,短点,连续等方法调试与运行程序,根据存储器,寄存器与标志位的内容与变化.如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.C.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.6.实验报告A.目的,要求,内容及算法思想B.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.C.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.D.实验心得及有意义的建议.基本演示6循环程序设计1.实验目的掌握循环程序设计的原理和方法,重点掌握循环程序结构的形式和常用循环程序的控制方法和技巧.2.实验要求A.置循环参数的初值B.循环体构成C.如何实现循环控制3.实验内容A.基本题:计数1+2+3+...+100B.选做题:把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来.4.实验准备A.认真阅读本实验指导B.按实验内容要求,确定算法,画流程图,编写程序.5.实验步骤A.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.B.调试与运行程序:用单步,短点,连续等方法调试与运行程序,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.C.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.6.实验报告A.目的,要求,内容及算法思想.B.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.C.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.D.实验心得及有意义的建议基本演示7子程序设计1.实验目的掌握子程序设计的原理和方法,重点掌握子程序结构的形式和常用子程序的控制方法和技巧.采用子程序设计以增加程序的可读性,有利于程序的模块化和自顶向下的设计方法的实现.2.实验要求A.子程序定义及相对应的调用方法.B.子程序设计时需建立子程序的功能说明C.子程序现场保护和现场恢复D.子程序的输入参数和输出参数的确定及传递方法,可利用寄存器,内存或堆栈传递参数.E.子程序套调用时,注意任何存放断点和寻找短点进行返回.F.掌握常用DOS系统功能子程序的调用.3.实验内容A.基本题:十进制数到十六进制数转化程序.程序要求从键盘取得一个十进制数,然后以十六进制形式在屏幕上显示出来.B.选做题:利用堆栈传递参数,实现对两个已定义的数组分别求和.4.实验准备A.认真阅读本实验指导B.按实验内容要求,确定算法,画流程图,编写程序.5.实验步骤A.首先进入编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.B.调试与运行程序:用单步,短点,连续等方法调试与运行程序,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF,I等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止.C.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.6.实验报告A.目的,要求,内容及算法思想B.程序流程图,程序清单,重要部位说明.如:重要的指令功能,重要的程序段功能.C.程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果.D.实验心得及有意义的建议.基本演示8实验演示为了让大家能更好的了解汇编语言实验我们做了两个实验演示演示一:怎样将.ASM文件生成.EXE文件。