汇编语言实验-基本DOS命令和MASM

合集下载

实验一 DOS 环境下的汇编语言编程环境使用

实验一 DOS 环境下的汇编语言编程环境使用

实验一 DOS 环境下的汇编语言编程环境使用一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM 的使用;3、熟练掌握连接程序LINK 的使用;4、熟练掌握DEBUG 的使用;二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识1、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为 .OBJ 的目标文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的交叉索引文件。

目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。

列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。

交叉索引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。

汇编程序的主要功能可以概括为以下三点: (1) 检查源程序中的语法错误,并给出错误信息;(2) 产生目标程序文件(OBJ 文件),并可给出列表文件(.LST 文件);(3) 展开宏指令。

2、目标程序的连接过程连接程序进行连接时,其输入有两个部分:一是目标文件(.OBJ),;另一是库文件(.LIB),库文件是系统中已经建立的,主要是为高级语言提供的。

连接后输出两个文件,一是扩展名为 .EXE 的可执行文件,另一个是扩展名为 .MAP 的内存分配文件,它是连接程序的列表文件,又称为连接映像(Link Map),它给出每个段在存储器中的分配情况,该文件可有可无。

连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。

Windows10下利用DOSBOX和MASM32搭建汇编语言开发环境

Windows10下利用DOSBOX和MASM32搭建汇编语言开发环境

Windows10下利⽤DOSBOX和MASM32搭建汇编语⾔开发环境⽬录⼀、⼯具准备1)下载DOSBOX2)下载MASM323)汇编⼯具下载⼆、安装⼯具1)安装DOSBOX2)DOSBox使⽤指南3)安装MASM32三、程序调试过程四、参考资料总结⼀、⼯具准备1)下载DOSBOX⼯具介绍:DOSBox 是⼀个 DOS 模拟程序,由于它采⽤的是 SDL 库,所以可以很⽅便的移植到其他的平台。

⽬前,DOSBox 已经⽀持在Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运⾏。

不少DOS下的游戏都可以直接在该平台上运⾏。

说明:由于项⽬已经停更,⽬前官⽹上指出,DOSBOX可以运⾏于32位和64位的Windows Vista和Windows 7之上,根据本⼈亲测,亦可在32位和64位的Windows 10上运⾏DOSBOX,因此有需要的可以试试。

选择Win32 installer那个安装了⼀路next即可2)下载MASM32⼯具介绍:MASM32是国外的MASM爱好者Steve Hutchesson⾃⾏整理和编写的⼀个软件包,⽬前最⾼版本为11r版。

MASM32并⾮指Microsoft的MASM宏汇编器,⽽是包含了不同版本⼯具组建的汇编开发⼯具包。

它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是Microsoft Visual Studio中的Rc.exe,32位链接器是Microsoft Visual Studio中的Link.exe,同时包含有其他的⼀些如Lib.exe和DumpPe.exe等⼯具。

3)汇编⼯具下载⼆、安装⼯具1)安装DOSBOX安装下载到的DOSBox0.74-win32-installer.exe,直接⼀路Next完成安装。

2)DOSBox使⽤指南1、创建⼀个⽤于保存汇编⼯具(如MASM、Link、DEBUG等⼯具)和汇编⽂件(*.asm)的⽬录,如:D:\DEBUG。

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计实验一熟悉、使用DEBUG调试工具一.上机目的:1.了解并逐步熟悉汇编语言的编辑方法及特点.2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。

3.掌握汇编语言的编辑、汇编及连接的过程。

4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。

二.实验内容:1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。

3.运用LINK.EXE文件进行连接,形成*.EXE文件。

4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。

5.运用DEBUG。

EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。

6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。

程序清单:多字节非压缩型BCD数除法(88754/6=14792)DA TA SEGMENTA DB 8,8,7,5,4B DB 6C DB 5DUP (0)N EQU 5DA TA ENDSCODE SEGMENTASSUME CS:CODE;DS:DATA;ES:DATA,START MOV AX,DA TAMOV DS,AXMOV ES,AXCLDLEA SI,ALEB DI,CMOV CX,NMOV AH,0LP1:LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2:MOV DL,[DI]MOV AH,2INT 21HDEC DILOOP LP2MOV AH,4CHINT 21HCODE: ENDSEND START实验二设计汇编语言程序一.8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。

汇编实验一 DOS 环境下的汇编语言编程环境使用

汇编实验一 DOS 环境下的汇编语言编程环境使用

汇编语言实验报告实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)班级:姓名:学号:实验日期:实验一 DOS 环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM 的使用;3、熟练掌握连接程序LINK 的使用;4、熟练掌握DEBUG 的使用;二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识汇编语言程序设计上机开发过程如图1.1 所示。

1、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3 个文件:扩展名为 .OBJ 的目标文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的交叉索引文件。

目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。

列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。

交叉索引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。

.LST 和.CRF 两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。

在对源程序文件(ASM 文件)汇编时,汇编程序将对ASM 文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即OBJ 文件。

因此,汇编程序的主要功能可以概括为以下三点: (1) 检查源程序中的语法错误,并给出错误信息;(2) 产生目标程序文件(OBJ 文件),并可给出列表文件(.LST 文件);(3) 展开宏指令。

汇编学习笔记(4)-伪指令(MASM)

汇编学习笔记(4)-伪指令(MASM)

汇编学习笔记(4)-伪指令(MASM)前⾔ 编写汇编代码的时候会使⽤到两种语句,⼀种就是前⾯介绍的汇编指令⼜CPU提供功能⽀持,另⼀种呢叫做伪指令,伪指令是由汇编的编译器提供⽀持。

所以伪指令的运⾏结果都必须实在编译的时候就能确定的,下⾯介绍的就是伪指令了。

注意接下来介绍的伪指令都是基于MASM汇编编译器,⽐较常⽤的还有NASM 它的语法以后有机会介绍数值表达式 数值表达式不是汇编指令,表达式的值是在汇编代码的汇编过程中就由汇编编译器计算出结果⽽写到⼆进制程序中了,并不是在程序运⾏的过程中才计算的 (1) 常数表达式 常数就是直接的数字,直接写数字默认表⽰10进制数,也可以⽤符号指定为其他进制 D = ⼗进制 ; MOV AL, 1234D B = ⼆进制 ; MOV AL, 0101B H = ⼗六进制 ; MOV AL, 0FFFFH , 注意常数必须是数字开头不能是字母开头,如果16进制数第⼀个数字是字母的话就要补⼀个0在前⾯ Q = ⼋进制 ; MOV AL, 123Q 因为在程序中字母也是数字,所以其实也可以直接将字母或者字符串当成数字,⽐如 MOV AL, 'a' MOV AX,"ab" ; 双引号和单引号都是可以使⽤的 (2) 算数运算符 就是简单的正(+) 负(-) 加(+) 减(-) 乘(*) 除(/) 模(mod) mov ax, 100+200 mov ax, 100/2 (3) 关系运算符 等于(EQ) 不等(NE) ⼤于(GT) ⼩于(LT) ⼤于等于(GE) ⼩于等于(LE) 如果等式成⽴则实际的值为0FFFF就是补码表⽰的-1, 如果关系不成⽴那么结果就是0 mov ax, 123 gt 234 mov ax, 1234+5 lt 1235 (4) 逻辑运算 与(and) 或(or) ⾮(not) 异或(xor) 左位移(shl) 右位移(shr) mov ax, 1 shl 3 mov al, 3 and 47 (5) 其他操作符 HIGH LOW WIDTH MASK HIGH 表⽰取数据的⾼⼋位 LOW 表⽰取数据的低⼋位地址表达式 地址表达式所表⽰的是存储器操作数的地址。

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计实验一熟悉、使用DEBUG调试工具一.上机目的:1.了解并逐步熟悉汇编语言的编辑方法及特点.2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。

3.掌握汇编语言的编辑、汇编及连接的过程。

4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。

二.实验内容:1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。

3.运用LINK.EXE文件进行连接,形成*.EXE文件。

4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。

5.运用DEBUG。

EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。

6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。

程序清单:多字节非压缩型BCD数除法(88754/6=14792)DA TA SEGMENTA DB 8,8,7,5,4B DB 6C DB 5DUP (0)N EQU 5DA TA ENDSCODE SEGMENTASSUME CS:CODE;DS:DATA;ES:DATA,START MOV AX,DA TAMOV DS,AXMOV ES,AXCLDLEA SI,ALEB DI,CMOV CX,NMOV AH,0LP1:LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2:MOV DL,[DI]MOV AH,2INT 21HDEC DILOOP LP2MOV AH,4CHINT 21HCODE: ENDSEND START实验二设计汇编语言程序一.8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。

实验2— 汇编语言上机过程

实验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。

汇编语言程序设计MASM汇编器利用

汇编语言程序设计MASM汇编器利用

汇编语言程序设计实验二MASM 汇编器利用学号:姓名:1.利用MASM为DOS和Windows编程:a)DOS中运行的程序:先输入程序,.386.model flat, stdcalloption casemap :noneinclude \masm32\include\include \masm32\include\include \masm32\include\includelib \masm32\lib\includelib \masm32\lib\.dataHelloWorld db "Hello World!", 0.codestart:invoke StdOut, addr HelloWorldinvoke ExitProcess, 0end start再打开DOS命令提示符界面,输入“\masm32\bin\ml /c /Zd /coff ”在没错误情形下,能够连接文件,输入“\masm32\bin\Link /SUBSYSTEM:CONSOLE “,在工作目录中会产生可运行文件,运行并记录运行结果。

b)Windows 中运行的程序:先修改程序,.386.model flat, stdcalloption casemap :noneinclude \masm32\include\include \masm32\include\include \masm32\include\includelib \masm32\lib\includelib \masm32\lib\.dataHelloWorld db "Hello World!", 0.codestart:invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OKinvoke ExitProcess, 0end start用命令“\masm32\bin\ml /c /Zd /coff ”编译程序,再用命令“\masm32\bin\Link /SUBSYSTEM:WINDOWS ”连接程序,运行并记录运行结果。

使用MASM运行第一个汇编程序全过程

使用MASM运行第一个汇编程序全过程

初次使用MASM编译器编写汇编程序的完整过程1.运行 cmd 命令2.输入edit3.进入汇编源码编辑框4.在源码输入框中输入汇编源码并将源程序保存,并拷贝到MASM和LINKER所在的盘符或文件夹下5.在 Dos 环境下进入到 MASM 5.0 汇编编译器所在的目录6.然后运行 masm.exe可以从上面的截图中看到 [. ASM] 的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,这里有一点特别的是,由于默认的文件扩展名为 .asm ,所以在编译 .asm 的汇编源程序时可以不用指定源程序所在文件的扩展名。

7.我们将一开始编辑好的汇编源程序所在的文件输入以进行编译(1)此时可以看到编译器提示需要输入要编译出的目标文件的名称,由于在一开始已经指定了 js.asm,所以编译器自动指定了目标文件的名称为 js. obj 的名称,如果在这里不做修改的话,则编译器会以默认目标文件名称 js. obj 进行输出,在这里我并不改变名称,所以直接按 Enter 键即可;(2)提示需要输入列表文件的名称,其实是完全可以不要让编译器生成这个 LST 文件的,所以也不需要进行输入,直接按 Enter 键即可;(3)提示需要输入交叉引用文件的名称,这里也完全可以不要让编译器生成这个 CRF 文件,所以也不需要进行输入,直接按 Enter 键即可。

至此,汇编源程序编译成功编译得到的结果就是在我的 D:\ 目录下生成了一个 JS.obj 文件8.下面就是要实现对目标文件的连接经过编译操作后,我们得到了一个 .obj 的目标文件,但很显然,这还并不是一个可执行文件,下面就需要对目标文件进行连接,从而得到一个可执行文件。

一般来说,需要准备一个连接器,这里我使用的是微软提供的 Linker 连接器,即LINK.EXE。

9.进入 LINK.EXE 文件所在目录,直接运行 LINK.EXE此时提示需要输入被连接的目标文件的名称,这里也就是JS.obj ,由于我的 JS.obj 和 Link.exe 在同一目录下,所以不需要指定路径,直接给出.obj的名称即可,按Enter 键。

汇编语言实验-基本DOS命令和MASM

汇编语言实验-基本DOS命令和MASM

(8)退到根目录 )
例如:C:\>masm5>cd\ 结果:C:\>
(9)清屏 )
例如:C:\>cls
常用DOS命令+MASM DOS命令 实验 常用DOS命令+MASM
DOS下常用快捷健 DOS下常用快捷健
(1)清除当前命令行:ESC (2)输入上次输入的命令:F5 (3)显示曾经输入的所有命令供选择并执行:F7 (4)搜索命令的历史记录,循环显示所有曾经输入的命 令,直到按下回车键为止:F8
常用DOS命令+MASM DOS命令 实验 常用DOS命令+MASM
--------------------------------------------------------DATA S1 DATA STACK STACK CODE SEGMENT DB ENDS SEGMENT ENDS SEGMENT PARA STACK ‘HELLO!’,‘$’
a.asm--------------------------------------------------------
DB 64 DUP(?) (?)
MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK , , START: PUSH DS MOV MOV MOV MOV MOV MOV MOV INT RET MAIN ENDP CODE ENDS END START ---------------------------------------------------------------------------------------------------------------------------AX,0 , AX,DATA , DS,AX , AX,STACK , SS,AX , AH,09H , DX,OFFSET S1 , 21H PUSH AX

汇编实验报告

汇编实验报告

汇编实验报告一、实验目的本次汇编实验的主要目的是深入了解汇编语言的基本语法和编程结构,掌握汇编程序的编写、调试和运行过程,提高对计算机底层硬件的理解和操作能力。

二、实验环境1、操作系统:Windows 102、编程工具:MASM(Microsoft Macro Assembler)三、实验内容1、数据传送与运算编写程序实现不同寄存器之间的数据传送。

进行简单的算术运算,如加法、减法、乘法和除法,并将结果存储在指定的寄存器或内存单元中。

2、逻辑运算与移位操作进行逻辑运算,包括与、或、非和异或操作。

实现移位操作,如左移和右移,并观察数据的变化。

3、分支与循环结构使用条件跳转指令实现分支结构,根据不同的条件执行不同的代码段。

运用循环指令实现循环操作,如计数循环和条件循环。

4、子程序调用编写子程序来完成特定的功能,如计算阶乘、查找最大值等。

在主程序中调用子程序,并传递参数和获取返回值。

四、实验步骤1、数据传送与运算打开 MASM 编程工具,新建一个汇编源文件。

使用 MOV 指令将数据从一个寄存器传送到另一个寄存器,例如:MOV AX, BX 。

进行加法运算,使用 ADD 指令,如:ADD AX, CX 。

进行减法运算,使用 SUB 指令,如:SUB DX, BX 。

乘法运算使用 MUL 指令,除法运算使用 DIV 指令,并将结果存储在合适的位置。

2、逻辑运算与移位操作在源文件中使用 AND 、OR 、NOT 和 XOR 指令进行逻辑运算,例如:AND AX, BX 。

对于移位操作,使用 SHL (左移)和 SHR (右移)指令,如:SHL AX, 2 表示将 AX 的值左移 2 位。

3、分支与循环结构使用 CMP 指令比较两个值,然后根据比较结果使用 JZ (等于零跳转)、JL (小于跳转)、JG (大于跳转)等条件跳转指令实现分支结构。

对于循环结构,使用 LOOP 指令实现计数循环,例如:MOV CX, 10 ;LABEL: ;LOOP LABEL 。

汇编语言上机指导及例示(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言上机指导及例示(川大微机原理实验资料和内容以及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的形式即可。

熟悉masm及编写简单的汇编程序

熟悉masm及编写简单的汇编程序

实验二熟悉masm及编写简单的汇编程序一、实验目的1.熟悉masm软件及简单汇编程序的编写。

二、利用masm编译软件检查标号的组成除英文和数字外,能否包含以下特殊字符:(1)编写程序新建一个文本文档,在下面写如下程序段code segmentassume cs:codebegin:mov ax,bxcode endsend begin修改标号begin,使其包含. —_ @ ? $ ,若能编译通过,则说明标号中可以包含盖特殊符号。

实验结果:上述符号能编译通过。

(2)编译及运行程序编译:进入dos命令提示符,开始——运行——输入cmd输入cd\使目录为:c:\>(或输入cd...返回上级目录最终回到c:\>)输入以下命令c:\>cd masm5 (进入masm5文件夹)C:\masm5>masm (运行masm程序)Source filename 【.asm】: 输入程序的路径Object filename 【.obj】:输入生成的目标文件的文件名(可不写,直接回车,默认与源文件名相同)再按俩次回车键,最后显示程序的相关信息及错误信息。

运行:回到根目录C:\masm5>输入以下命令C:\masm5>link 目标文件名再按三次回车键,生成可执行文件名回到根目录C:\masm5>可执行文件名(运行程序)生成后的目标文件即可执行文件在C:\masm5中(2)编写程序让屏幕显示某个指定储存区域的内容。

参考程序1:data1 segment;d1 db'30','$';data1 ends;stack1 segment para stack;dw 20 dup(0);stack1 ends;code segment;assume cs:code,ds:data1,ss:stack1;begin:mov ax,data1;mov ds,ax;lea dx,d1;mov ah,09h;int 21h;1 / 2mov ah,4ch;int 21h;code ends;end begin;程序运行结果:30参考程序2:code segmentassume cs:codebegin:mov bx,1000hmov word ptr[bx],3231hlea dx,[bx]add bx,2mov byte ptr[bx],'$'mov ah,09hint 21hmov ah,4chint 21hcode endsend begin程序运行结果:123.略实验总结:1.对课本内容相对不熟悉2.对试验参数不够了解,影响实验速度友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。

汇编语言上机实验

汇编语言上机实验

汇编语言上机实验主讲:左琼一、汇编程序的功能1.MASM的功能.检查语法错误,提示错误信息.产生可重定位的目标文件(.OBJ).处理各种伪指令.处理宏库,对于宏指令进行宏扩展.提供包括源程序、目标程序以及符号表在内的汇编列表文件(.LST) .提供一个夹有特定控制字符的符号交叉参考文件(.CRF)。

MASM是一个两次扫描(即从头到尾逐行阅读处理汇编源程序,直到END伪指令)的汇编程序,第一次扫描确定用户自定义符号的值,第二次扫描产生目标代码。

即两次扫描后MASM就能将源程序翻译成目标程序(.OBJ)。

DATA1 SEGMENT USE16A DD A1 ;第二遍扫描处理DATA1 ENDSDATA2 SEGMENT USE16A1 DW 125 ;第一遍扫描处理DATA2 ENDS2.其它汇编程序TASMNASM二、连接程序的功能1.连接程序LINK的功能.将指定的若干个目标模块(OBJ)和子程序库(LIB)中的子程序模块连接在一起,生成一个能够执行的文件(EXE/COM).生成一个地址分配文件(MAP),描述各段的起始地址、结束地址、大小等信息。

三、在PC机上建立、调试、运行汇编源程序的方法1.上机步骤(1)建立与修改汇编源程序文件,扩展名为.asm在WINDOWS98或WIN2000下可用记事本输入汇编源程序,然后以.asm为扩展名存盘。

(2)在DOS窗口下,汇编源文件以产生相应的目标文件(扩展名为.obj):执行命令:MASM DEMO.ASM;(简单方式)或者:MASM DEMO.ASM (交互方式)(3)在DOS窗口下,连接目标文件以建立可执行文件(扩展名为.exe)LINK DEMO; (简单方式)LINK (交互方式)LINK命令还可以连接多个目标文件:LINK DEMO1(主模块名)+DEMO2+DEMO3产生可执行文件DEMO1.EXE2.程序调试(1) 调试工具TD.EXE源代码级调试器,可以调试ASM/C等多种语言程序。

实验一如何用MASM5

实验一如何用MASM5

实验一如何用MASM5实验一如何用MASM5MASM(Microsoft Macro Assembler)是一种汇编语言开发工具,由微软公司开发并用于MS-DOS和Windows操作系统。

以下是一些使用MASM5的步骤和注意事项:2.配置环境变量:MASM5安装后,需要配置系统的环境变量,以便在命令行中访问MASM5的可执行文件。

将MASM5的安装目录添加到系统的PATH环境变量中。

4. 编写汇编代码: MASM5使用8086汇编语言,编写代码时需要遵循特定的语法规则。

在.asm文件中,您可以使用各种指令和汇编器指令来编写代码。

例如,您可以使用MOV指令将一个数据从一个位置复制到另一个位置。

5. 汇编和链接: 打开命令提示符,导航到包含您的.asm文件的目录。

运行以下命令来汇编和链接您的代码:```masm filename.asm;link filename.obj;```这将生成一个可执行文件,可以在DOS或Windows命令行下运行。

6.运行程序:运行生成的可执行文件,您将看到您的汇编程序在屏幕上输出结果。

请注意,MASM5是一个古老的工具,可能不再在最新的Windows操作系统上正常工作。

如果您遇到问题,您可以尝试使用最新的版本,如MASM32或MASM64总结:在实验一中,我们学习了如何使用MASM5进行汇编编程。

我们了解了如何安装MASM5,配置环境变量,并编写汇编代码。

我们还学习了如何通过汇编和链接命令来生成可执行文件,并在命令行中运行它。

尽管MASM5是一个古老的工具,但它仍然是学习汇编语言和了解低级计算机原理的好选择。

编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

在"开始"找到运行单击在运行中输入CMD输入CD空格\(反斜杠),(进入C盘根目录)输入F:(进入F盘)输入CD空格MASM(进入MASM文件夹)输入MASM空格0817.ASM(检查0817.ASM有无错误并生成.OBJ文件),直到没错输入LINK空格0817.OBJ(进行连接)输入0817.EXE运行汇编语言应用程序的开发一.汇编语言应用程序的开发过程开发一个可独立运行的汇编语言程序,主要包括以下基本步骤:1.用文本编辑软件编辑汇编语言源程序模块(SOURCE MODULES)。

一个完整的汇编语言源程序,可以是单模块结构格式,也可以是多模块结构格式。

无论采用哪一种结构格式,每一个模块都必须是一个可独立汇编的源程序文件(扩展名为.ASM)。

常用的文本编辑软件如EDIT,QEDIT,PE,或由其他高级语言(如TC,VC等)提供的编辑环境,都可以用来编辑汇编语言源程序。

2.调用宏汇编程序MASM对源程序的每一个模块进行汇编(包括对宏的处理),生成目标文件.OBJ。

在汇编过程中,MASM将对源程序模块进行语法检查,若有语法错误,则在汇编结束时,将错误信息显示出来。

这时程序设计者就得返回第二步,再调用编辑程序,并根据提示信息,对有语法错误的语句进行修改,然后再重新进行汇编,直到MASM未发现语法错误为止。

在汇编过程中,出了对每一个源程序模块文件都要生成对应的目标文件.OBJ外,还可以选择生成列表文件.LST和交叉引用文件.CRF,以提供调试时使用。

在汇编时产生的错误,通常称为语法错误。

注意:在汇编过程中不能发现程序的逻辑功能错误。

3.调试连接程序LINK,对一个或多个目标文件.OBJ进行连接,生成一个可执行文件.EXE。

这里所说的目标文件,有的可能是在汇编时产生的,有的可能是由某个库文件.LIB 提供的。

在连接过程中,还可以选择生成内存映像文件.MAP,以供在调试程序时使用。

在连接过程中,如果发现有错误,也会将错误信息显示在屏幕上。

汇编实验报告6

汇编实验报告6

汇编实验报告6汇编实验报告6引言:汇编语言是一种底层编程语言,它直接操作计算机硬件,提供了对计算机底层资源的更精确控制。

在本次实验中,我们将继续学习和实践汇编语言的相关知识,探索其在计算机系统中的作用和应用。

一、实验目的本次实验旨在加深我们对汇编语言的理解,并通过实践进一步掌握汇编语言的基本概念、语法和应用。

具体目标如下:1. 掌握汇编语言的基本指令和寻址方式;2. 理解和实现简单的汇编程序;3. 学会使用调试工具调试汇编程序。

二、实验环境本次实验使用的环境为Windows操作系统和MASM汇编器。

在实验开始前,我们需要确保已经正确安装了MASM汇编器,并配置好了相关环境变量。

三、实验过程1. 编写程序本次实验我们将编写一个简单的汇编程序,实现两个数相加并输出结果的功能。

首先,我们需要使用文本编辑器打开一个新的文件,并保存为.asm格式。

接下来,我们将按照汇编语言的语法规则,逐步编写程序。

2. 汇编程序的结构一个标准的汇编程序由三个部分组成:数据段、代码段和堆栈段。

在数据段中,我们定义了需要使用的变量和常量;在代码段中,我们编写了实际的汇编指令;而堆栈段则用于存储程序执行过程中的临时数据。

3. 汇编指令的使用在本次实验中,我们将使用一些常见的汇编指令,如MOV、ADD、SUB等。

这些指令用于操作寄存器、内存和立即数,实现数据的传输、运算和比较等功能。

4. 调试程序编写完汇编程序后,我们需要使用调试工具对程序进行调试,以确保程序的正确性。

调试工具可以帮助我们逐条执行程序,并查看寄存器和内存的变化,从而找出程序中的错误。

四、实验结果与分析经过编写和调试,我们成功地实现了两个数相加并输出结果的功能。

我们可以通过调试工具查看程序执行过程中寄存器和内存的变化,以验证程序的正确性。

同时,我们还可以对程序进行性能分析,了解其在不同输入情况下的执行效率。

五、实验总结通过本次实验,我们深入学习了汇编语言的基本概念和应用。

DOSBox+MASM搭建汇编语言运行环境图文教程

DOSBox+MASM搭建汇编语言运行环境图文教程

DOSBox+MASM搭建汇编语⾔运⾏环境图⽂教程⼀、前期准备1、安装DOSBox-0.74;2、MASM⼯具包将Masm⽂件夹放⼊某个磁盘根⽬录下下载⽂件打包MASM多个版本打包(附dosbox与教程)类型:编程⼯具⼤⼩:21MB语⾔:简体中⽂时间:2020-01-11查看详情⼆、安装dosbox与masm1、下载的dosbox解压;运⾏exe,⼀直下⼀步即可;2、masm⽤来编译汇编程序;到⽹上搜索下载即可;解压⽬录如下:将解压masm,将⽂件放在特定的⽬录下;例如:D:\GongJu\masm3、挂载dosbox⽬的是将dosbox的c盘挂载到masm的⽬录下;简单点说就是挂载完后,dosbox的c盘相当于是D:\GongJu\masm具体执⾏:打开dosbox解压⽬录,运⾏ xxxOption.bat会弹出⼀个记事本,找到[autoexec],组下⾯添加两⾏命令:MOUNT C D:\GongJu\masmset PATH=$PATH$;D:\GongJu\masm4、完成后,打开dosbox,输⼊命令 c: 切换到c盘,然后输⼊命令 dir,如果显⽰的是masm⽬录下的内容则挂载正确;5、创建汇编程序可以在masm的⽬录下新建⼀个 xxx.asm,然后编写代码即可;汇编的helloworld1、新建⼀个⽂本⽂件编写代码DSEG SEGMENTMESS DB 'Hello,World!' ,0DH,0AH,24HDSEG ENDSSSEG SEGMENT PARA STACKDW 256 DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGBEGIN: MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESSMOV AH,9INT 21HMOV AH,4CHINT 21HCSEG ENDSEND BEGIN或者DATAS SEGMENTSTRING DB 'Hello World!',13,10,'$'DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,STRINGMOV AH,9INT 21HMOV AH,4CHINT 21HCODES ENDSEND START将⽂件保存为hello.asm;2、编译运⾏将hello.asm移动到masm⽬录下;打开dosbox;编译:将 hello.asm编译成 hello.obj输⼊命令masm hello.asm连接:编译会⽣成⼀个 hello.obj⽂件,连接该⽂件⽣成可执⾏⽂件hello.exe 输⼊命令link hello运⾏:这时已经编译连接完成,⽣成了⼀个hello.exe;运⾏hello.exe命令:hello可以看到成功输出了 hello world下⾯是其他⽹友的补充搭建配置如下(放⼤看效果更好):masm.exe:汇编程序,⽤于汇编源程序(.asm),得到⽬标程序(.obj) link.exe:连接程序,⽤于连接⽬标程序,得到可执⾏程序(.exe) debug.exe:调试程序,⽤于调试可执⾏程序如果烦上⾯⼏个命令,可以写⼀个批处理⽂件(如下):@echo offmasm %1;if errorlevel 1 pause & edit %1.asmlink %1;debug %1.exe说明:%1是输⼊⼀个参数的意思,这个⼤家可以学⼀下window的批处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MOV DX,OFFSET S1
实验 常用DOS命令+MASM 补充材料
MASM
实验 常用DOS命令+MASM
汇编: c:\>masm5>masm a.asm 链接: c:\>masm5>link a.obj
执行:
c:\>masm5>a.exe
实验 常用DOS命令+MASM
--------------------------------------------------------DATA SEGMENT
实验 常用DOS命令+MASM 补充材料
常用DOS命令
实验 常用DOS命令+MASM
(1)查看目录命令DIR
C:\>dir
C:\>dir/w
(2)显示文件内容命令TYPE
C:\>type test.asm
(3)文件拷贝命令COPY
C:\>copy sa.asm sd.asm 将文件sa.asm拷贝为sd.asm
(7)退到上级目录
例如:C:\>masm5>abc>cd..
结果:C:\>masm5
(8)退到根目录
例如:C:\>masm5>cd\ 结果:C:\>
(9)清屏
例如:C:\>cls
实验 常用DOS命令+MASM
DOS下常用快捷健
(1)清除当前命令行:ESC
(2)输入上次输入的命令:F5 (3)显示曾经输入的所有命令供选择并执行:F7 (4)搜索命令的历史记录,循环显示所有曾经输入的命 令,直到按下回车键为止:F8
实验 常用DOS命令+MASM
(4)改变盘符命令
C:\>e: 结果为:E:\>
(5)进入下一级目录
C:\>cd 子目录名 例如:C:\>cd masm5 结果:C:\masm5>
(6)改变目录
例如:C:\>cd windows\temp
结果:C:\>windows\temp>
实验 常用DOS命令+MASM
a.asm--------------------------------------------------------
S1
DATA STACK STACK CODE
DB
ENDS SEGMENT ENDS SEGMENT
‘HELLO!’,‘$’
PARA STACK
DB 64 DSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS MOV MOV MOV MOV MOV MOV INT RET MAIN ENDP CODE ENDS END START ---------------------------------------------------------------------------------------------------------------------------AX,0 AX,DATA DS,AX AX,STACK SS,AX AH,09H 21H PUSH AX
相关文档
最新文档