汇编语言程序上机过程

合集下载

汇编语言程序的上机过程

汇编语言程序的上机过程

汇编语言的上机过程汇编语言程序的上机过程包括编辑、汇编、连接和执行这四个步骤。

汇编程序我们提供宏汇编程序MASM5.0和MASM6.14两个版本。

1、建立源程序文件建立和编辑汇编语言源程序可以使用EDIT、记事本、写字本,也可以使用TC等来输入源程序。

保存时,源程序文件的扩展名必须是ASM。

练习:(1)在DOS下用编辑软件EDIT建立如下源程序文件,将文件保存为Hello.ASM,保存在MASM5目录下。

(调用命令“C:\EDIT”进入EDIT编辑器。

)源程序文件如下:DSEG SEGMENTMESSAGE DB 'HOW DO YOU DO?',0DH,0AH,24HDSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGBEGIN:MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESSAGEMOV AH,9INT 21HMOV AH,4CHINT 21HCSEG ENDSEND BEGIN(2)编程计算1+2+3+ ……+100,和放在AX寄存器中,要求用循环实现。

对于MASM5.0和MASM6.14两个版本,编译和连接的方法有所不同。

以下分别就两个版本的编译和连接的方法进行讲解。

如果使用MASM5.0的话,操作方法如下(以HELLO.ASM源程序文件为例):2、对源程序进行汇编,生成目标文件HELLO.OBJ。

操作:(1)在DOS下进入MASM5.0的目录,如C:\MASM5>(2)敲入命令: MASM HELLO说明:.obj文件:目标代码文件,纯二进制代码文件,不能直接显示在屏幕上。

.lst文件:包含源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,但一般情况不需要。

.crf文件:交叉索引文件,给出源程序中定义的符号引用情况,初学时不需建立。

3、连接目标文件,生成执行文件HELLO.EXE,操作:敲入命令LINK HELLO说明:.EXE文件:可执行文件.MAP文件:连接映象文件,包括各个段在存储器中的分配情况,初学时不需要。

汇编语言上机过程

汇编语言上机过程

汇编语言上机过程:一、上机前的软件准备:MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等)文本编辑器(如: , TURBO.EXE , TC.EXE , C.EXE 等)汇编程序(如:MASM.EXE , ASM.EXE 等)连接程序(如:LINK.EXE 等)调试程序(如:DEBUG.EXE 等)二、汇编程序建立过程:三、现在对(二)的每一个标有字母的过程(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的形式即可。

PROCEDURE b:编译目标文件(即:编译为.obj .lst .crf文件)这个过程计算机将把你编的正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。

如果此时你的程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,你可根据提示去逐一修改。

现介绍具体过程:在DOS提示符下键入MASM filename回车(注:你系统内的汇编程序为MASM.EXE,如果你系统的汇编程序为ASM.EXE时,便将命令变为ASM filename回车。

汇编语言上机步骤

汇编语言上机步骤

(3)用LINK程序产生EXE文件 【例4-29】 C:\masm>link exam.obj↙ Microsoft(R)Overlay Linker Version3.60 Copyright(C)Microsoft Corp 1983-1987. Allrights reserved RunFile [exam.EXE]:↙ ListFile [NUL.MAP]: Libraries [.LIB]:
(5)程序的调试
【例4-30】 先进入DEBUG并装入要调试的程序 exam.exe。 键入如下: C:\masm>debug exam.exe DEBUG以短线“-”作为提示符,用户在提示符 后就可以使用DEBUG命令来调试程序。 DEBUG的主要命令有U、G、e)。
汇编语言上机步骤
薛 花 2009-11-3
汇编语言程序的上机过程与调试
1.汇编语言的工作环境 ① 操作系统DOS。 ② 编辑程序。 ③ 汇编程序:MASM.EXE。 ④ 连接程序:LINK.EXE。 ⑤ 辅助工具:DEBUG。
2.建立和运行汇编语言程序的过程
(1)源程序的输入和修改 (2)汇编
【例4-27】
【例4-28】
源程序的文件名为exam.asm,宏汇编程序的路径为 C:\\masm\masm.exe。 操作与汇编程序的应答如下: C:\masm>masm exam.asm ↙ Microsoft(R)Macro Assembler Version 5.00 Copyright(C)Microsoft Corp 1981-1985,1987. Allrights reserved Object filename [exam.OBJ]:↙ Source listing [NUL.LST]: Cross-reference [NUL.CRF]: 0 Warning Errors 0 Severe Errors

5.5汇编程序上机调试过程

5.5汇编程序上机调试过程

TTT:
MOV INC JMP
[BX+SI],ALFra bibliotekBBB:
MOV MOV MOV MOV MOV MOV MOV INT JMP
PPP: CODE
MOV INT ENDS END
AX,4C00H
EDIT建立汇编语言源程序 5.6.1 用EDIT建立汇编语言源程序 在 DOS 状 态 下 , 调 用 EDIT 编 辑 程 序 建 立 文 件 名 为 的汇编源程序,如图5-8所示。 C:\>EDIT WANG.ASM↙
装入磁盘上指定内容到存储器 装入指定文件 把数据写入磁盘指定的扇区 把数据写入指定的文件
-Q
退出DEBUG
§5.6 汇编语言程序运行实例
本节中通过一个汇编语言源程序的实际例子,来了解汇 编语言源程序的建立、汇编、连接、运行的过程。 给出的程序是将键盘输入的小写字母转换成大写字母的 程序并显示在屏幕上。设定源程序名为WANG.ASM。
键入以下命令: C:\>EDIT ABC.ASM↙ 此时屏幕的显示状态如图5-4所示。
5.5.3将源程序文件汇编成目标程序文件 在对源程序文件进行汇编时,汇编程序将对.ASM文件进 行二遍扫描。如果源程序文件中出现语法错误,则汇编结 束后将指出源程序中的错误,这时可用编辑程序再次修改 源程序中的错误,然后再次汇编,直到最后得到没有错误 的目标程序,即扩展名为.OBJ文件。 一般情况下,汇编程序的主要功能有以下3点: (1) 检查源程序中存在语法错误,并给出错误信息。 (2)源程序经汇编后没有错误,则产生目标程序文 件,扩展名为.OBJ。 若程序中使用了宏指令,则汇编程序将展开宏指令。
1.DEBUG程序的调用 . 程序的调用 在DOS的提示符下,可以直接键入命令,如图5-7所示 C:\>DEBUG ABC.EXE↙

第八讲(2) 汇编语言简单上机过程

第八讲(2)  汇编语言简单上机过程

本章到此结束
谢谢!
结 束放映
返回本章首页
第一章
微机基础知识概述
一、指出下列指令的寻址方式 MOV AX, 06H MOV BX, [BX+SI]
MOV AX, [2000H]
MOV CX, ALPHA[BP+DI]
JMP
CWD
BX
MOV AL, [DI]
第一章
微机基础知识概述
二、汇编后
DATA SEGMENT
Source filename [.ASM]:文件名
第一章
微机基础知识概述
Object filename[文件名.OBJ]
Source listing[NUL.LST]:文件名
Cross reference[NUL.CRF]:文件名
0 Warning Error 0 Severe Errors
返回本节
实验六、8259应用编程1、2。
第一章
微机基础知识概述
实验五:微机原理及接口实验指导书
1、实验七:8253定时/计数应用实验; 2、实验八:8255并行接口应用实验。
第一章
微机基础知识概述
实验六:综合实验 1、分析所使用的微机实验设备的系统组成, 画出结构图; 2、使用现有微机原理实验设备、设计综合 实验; 3、要求实验中应包含8259、8255、8253接 口芯片。
第一章
微机基础知识概述
四、动态调试程序
提供多种程序的运行方法和检测手段,可观察各
个寄存器、内存单元及标志变化情况。
C:\MASM>DEBUG 文件名.exe
_A 地址 送入程序。 _G [起地址] [末地址] 不写地址执行刚刚汇编过的程序。

实验二-汇编语言程序的上机步骤

实验二-汇编语言程序的上机步骤

实验二汇编语言程序的上机步骤一、实验目的熟练掌握汇编语言程序的上机步骤和程序调试方法。

二、实验内容及步骤1.通过CMD命令进入DOS方式。

2.通过CD命令和MD命令建立和进入用户程序目录。

3.将实验一笑脸程序补充为一个完整的汇编语言程序。

4.熟读第五部分内容:环境简介5.通过编辑——汇编——连接步骤生成.EXE形式的笑脸程序Smile.exe。

6.运行Smile.exe程序,观察运行结果。

7.用“DUBUG Smile.exe”命令将Smile.exe程序装入内存,通过R命令读取Smile.exe程序在内存的地址。

8.用反汇编U命令观察笑脸程序。

9.重复实验一“使用DEBUG调试程序”中的步骤(4)和(5),观察程序运行结果。

10.验证题以下程序段用以显示信息“Press any key when you ready.”。

在用户按下任一键后,另起一行显示信息“Input your password:”。

DSEG SEGMENT use16MESS1 DB ‘Press any key when you ready’,0AH,0DH,‘$’MESS2 DB ‘Input your password:’,’$’DSEG ENDSSSEG SEGMENT STACKDB 80H DUP(0)SSEG ENDSCSEG SEGMENTASSUME DS:DSEG,SS:SSEG,CS:CSEGSTART:MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESS1MOV AH,09HINT 21H ;显示“press any key when you ready.”MOV AH,08HINT 21H ;等待用户按任一键MOV DX,OFFSET MESS2MOV AH,09HINT 21H ;显示“Input your password:”MOV AH,4CHINT 21HCSEG ENDSEND START三、实验要求认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。

汇编语言上机过程

汇编语言上机过程

出各个段在内存中的分配情况,主要有各段的名字、起点、终
点和长度等信息。 A1.MAP文件的内容显示如下: Start Stop Length Name Class DATA COSEG
中的CREF.EXE程序,根据A1.CRF文件建立一个名为A1.REF的 文件。若显示A1.REF文件的内容,则可看到该符号表。下面是
源程序A1.ASM的交叉引用表文件A1.REF的清单:
第五章 基本汇编语言
Microsoft CrossReference (# definition, + modification) Cref-1 ADD2 .............. 16# ﹒ 25 CMPMIN ............. 18 22# COSEG ..............8# 9 30 DATA ..............1# 7 9 MAXV .............. 5# 26+ MINV .............. 6# 27+ NEXT .............. 19 21 23 25# NUM.............. 2# 12 START ..............10# 31 9 Symbols
第五章 基本汇编语言
汇编语言程序的上机过程
目前根据使用的软件, 汇编语言程序的上机有两种方式, 一种 是在 DOS 状态下逐步调用相关的软件对源程序进行编辑、汇编、 连接和运行,完成整个上机过程的。另一种是在集成环境(IDE) 下完成上述上机过程的,此种方式的上机比较方便,用户不必 用命令方式多次调用相关软件逐步完成上机过程,而只需要一 次调用IDE软件,然后利用该软件的各种功能菜单完成上述上机 过程, 整个上机过程只需在一个软件中完成。这是因为该类软 件利用了面向对象的程序设计方法将与汇编语言程序上机所需 的各种实用程序集成到一个软件中了。尽管该类软件使汇编语 言程序的上机方便了许多,但基本的上机步骤仍然与第一种方 式相同。为了使初学者对汇编语言的上机过程有个完整的概念, 我们仍以第一种上机方式进行介绍。汇编语言程序的上机过程 如图 5-1 所示。

汇编语言上机过程重点讲义资料

汇编语言上机过程重点讲义资料

第一步:编写程序用记事本编写汇编语言程序,保存为.ASM 文件,保存时,保存类型选择“所有文件”。

注意,应将汇编语言程序保存在包含MASM.EXE 及LINK.EXE 的目录下(本例中假定在C盘的MASM目录下,即“C:\MASM”)。

第二步:编译进入DOS命令提示符环境。

该环境的访问方法一:windows “开始”->“运行”,输入“cmd”),如下图:访问方法二:windows “开始”->“程序”->“附件”->“命令提示符”,如下图所示:进入DOS命令提示符方式:用CD 命令进入MASM目录,如下图所示:(若个人的MASM目录在D盘下,可如下操作:)回车后即进入存放有MASM.EXE LINK.EXE EX11.ASM 的目录D:\MASM :现在开始用汇编程序MASM.EXE 编译汇编语言源程序EX11.ASM:回车后开始编译:若编译出现0处错误(如上图椭圆框内),则表示编译通过,正确生成EX11.OBJ文件:接下来转入第四步。

否则,若出现如下类似界面:表示出现一处错误,该错误在EX11.ASM的第七行,错误为“出现未定义的符号AS”,则转入第三步。

第三步:编辑程序用 EDIT.EXE 编辑出现错误的程序 EX11.ASM:回车后,出现如下界面:找到第7行,并修改相应错误。

修改完成后,点击菜单“File”或用“ALT”回车打开“File”菜单,首先选择“Save”保存修改,然后选择“Exit”退出编辑状态:重复如下编译过程,重新编译修改过的EX11.ASM,直至全部错误修改完成:进入第四步。

第四步:链接用 LINK.EXE链接程序(注意链接的是.OBJ文件),生成可执行文件:链接成功后,生成exe文件:第五步:运行程序直接在DOS提示符下输入刚刚生成的exe文件。

(因本例程序无屏幕输出,故看不到运行结果。

若程序中设计有屏幕输入输出部分,则可直接看到屏幕的输入输出过程)第六步:调试程序用DEBUG.EXE调试程序。

汇编语言程序的上机过程

汇编语言程序的上机过程

汇编语言程序的上机过程
1.建立源程序
用记事本写写代码,把扩展名改为.asm,存入masm文件夹中,保存类型改为“所有文件”,否则系统默认为.txt文件保存。

2.用MASM程序编译源文件,产生目标文件。

1)先进入C:\MASM>中
2)输入“masm MM”即masm 文件名(扩展名可以省略)
3)画蓝线的部分表示有0个警告和0个致命的错误,表示编译通过了。

3
目标文件查看:
3.用Link程序连接目标文件,产生可执行程序
输入“LINK 文件名.obj(扩展名可以省)”eg: LINK MM.OBJ
通过连接产生MM.exe文件,在命令符窗口输入dir命令查看。

4.直接输入文件名查看输出内容。

5.用debug程序调试与运行可执行文件
输入debug命令,屏幕显示:
-
“-”号表示debug系统提示符,
1)用u命令反汇编该文件,屏幕显示如下:
2)用d命令了解数据存储
格式为:
d 数据段地址:0
3)用g命令执行该程序
格式为
g=程序的首地址:0
表示程序正常终止,文件中的文件显示出来。

3)用r显示寄存器内容命令
这里的cs和IP显示了当前指向的指令及其代码,即即将执行的下一条语句。

汇编语言上机

汇编语言上机

code SEGMENT ASSUME CS:code start: MOV CH, 4 ;字符个数 MOV CL, 4 ;循环移位次数 next: ROL BX, CL ;取显示位的值 MOV DL, BL ;保存在DL中 AND DL, 0FH ;清除高4位 ADD DL, 30H ;转变为数字的ASCII CMP DL, 39H ;大于39H, 则应转变 JLE print ;为字母A~F的ASCII ADD DL, 07H print: MOV AH, 2H ;显示DL中的字符 INT 21H DEC CH ;显示结束? JNZ next MOV AH, 4CH ;返回DOS INT 21H code ENDS END start
BX,OFFSET ARRAY DI,OFFSET MAX AX,[BX] BX BX CX,7 AX,[BX] L2 AX,[BX] BX BX L1 [DI],AX
思考
• 如何将最大值在屏幕上以16进制显示出来?
例2 将寄存器BX中的内容以十六进制形式显示出来。 (二进制 十六进制)
▲有关字符、数码转换的处理
用十六进制显示 BX内容子程
MOV DL, 20H MOV AH, 02H INT 21H RET POPF listbx ENDP AX POP code POP DX ENDS END BX POP start POP CX RET listbx ENDP code BP ;显示SI ;显示DI
listbx PROC PUSH CX ;保存寄存器 PUSH BX PUSH DX PUSH AX listbx PROC PUSHF MOV CH, 4 MOV CL, 4 next: ROL BX, CL MOV DL, BL AND DL, 0FH ADD DL, 30H CMP DL, 39H JLE print ADD DL,07H print: MOV AH,2H INT 21H DEC CH JNZ next

实验二 汇编语言程序上机过程

实验二  汇编语言程序上机过程

实验二汇编语言程序上机过程实验目的:熟悉8086/88汇编语言编程格式及上机设计调试过程。

如图5-1所示。

实验器材:计算机一台,DOS或WINDOWS环境,、MASM.EXE、LINK.EXE、DEBUG.EXE 等程序文件。

实验内容及步骤:1、编辑录入源程序建议EDIT后的文件名不要省略,源程序扩展名必须为ASM,不能省略。

EDIT界面如图6-1所示,激活菜单用鼠标单击或ALT+菜单名的第一个字母。

最常用的文件下拉中Save(保存)、Exit(退出,若未存盘会提示是否存盘)两个命令,如果未存盘选择Exit则会弹出如图6-2所示的对话框询问是保存退出(Yes)、不保存退出(No)、取消返回继续编辑(Cancel)。

例如:执行如下命令图6-1 EDIT的基本界面图6-2 EDIT的Exit命令对话框2、汇编汇编命令格式如下:建议源程序基本名不要省略。

例如:;扩展名“.ASM”可省略若没有错误显示如下:Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.Object filename [aa.OBJ]: ;目标文件名Source listing [NUL.LST]: ;源程序列表文件,加行号便于查错Cross-reference [NUL.CRF]: ;交叉参考文件,名字信息49576 + 420869 Bytes symbol space free0 Warning Errors ;警告错误0 Severe Errors ;严重错误,若有此类错误,不能生成目标OBJ文件有关错误信息的含义请参看教材附录C。

如果省略源程序名则第一个提示信息为:Source filename [.ASM]: ;源程序文件名3、连接连接命令格式如下:建议目标程序基本名不要省略。

PC汇编语言上机过程

PC汇编语言上机过程
PC汇编语言上机过程
一、编辑源程序(全屏编辑软件: 等) 存盘(如:test1.asm) 二、 汇编源程序 MASM <源文件名> (如: C:>MASM test1) 三、 连接目标程序LINK <源程序文件名> (C:> LINK test1) Run file [<file>.EXE]: List File [nul.map]: Libraries [.lib]: 送回车 连接后,可生成文件: test1.EXE 四、执行程序( 如:C:> test1回车 ) 五、调试程序 (如:C:> DEBUG test1 .exe回车 进入DEBUG 用DEBUG 命令调 试) --U DEBUG 命令:U、T、G、R、D、E。。。

• 如: • -A 100 127C:0100 127C:0103 127C:0105 127C:0107 127C:0109 127C:010B 127C:011E
mov mov int mov int db
dx,010B ah,09 21 ah,4c 21 ‘THIS IS AN EXAMPLE’,’$’
汇编语言格式3
• • • • • • • .MODEL SMALL .STACK 64 .DATA 。。。。。。 .CODE START:
。。。。。。ຫໍສະໝຸດ MOV AX,@DATA MOV DS,AX
• • •
MOV AH,4CH INT 21H END START
也可以用DEBUG 命令直接编写调试汇编程序(小程序
汇编语言格式1
• • • • • • • • code segment assume cs:code start: 。。。。。。 exit: mov ah,4ch int 21h code ends end start

汇编语言程序的上机过程.

汇编语言程序的上机过程.

返回DOS 和显示输出使用DOS功能调用 (INT 21H),参见P302页。调用步骤如 下:
;设置入口参数 AH=功能号 INT 21H AH=2 显示输出 DL=输出字符 AH=4CH 带返回码结束 程序结束前执行: MOV AX,4C00H INT 21H 就可以退出程序,返回DOS。
汇编语言程序的上机过程
一、进入系统
1、Ctrl+Alt+Del 系统热启动 屏幕显示:如果不是授权用户,请勿登录 确定 2、按确定后,屏幕显示: 用户名:wl51-2 密码: cjx 域:student6(6号机房),student7 (7号机房) 欢迎使用Windows NT!
3、出现Windows界面 光标指向左下角,点击开始,出现一菜单,选择其中程序 项,点击,出现子菜单。或在运行项中键入cmd也可进入 DOS状态。 在子菜单中选择“MS-DOS命令提示符”,点击后系统退 回 到DOS方式,出现DOS提示符Z : \ > 在Z盘的目录下有一子目录masm ,在该目录下有5个程序: A .OBJ ;老师提供的模块 DEBUG.EXE ;调试程序 ;文本编辑程序 MASM.EXE ;宏汇编程序 LINK.EXE ;链接程序 可以不进入DOS状态,而在WINDOWS下直接进入E盘。 4、 Z : \ > E : (回车);Z是系统盘,用户不能用。 要进入E盘(这是用户盘)
Байду номын сангаас
四、连接程序(LINK.EXE)
目标程序必须经过连接后,才能成为扩展名为.EXE 的可执行文件。 多个目标文件连接时,可用空格或+号来连接。 例如:LINK 文件名.obj A.obj(回车) 这里.OBJ可以省略
3月21日8:00-10:00,第一次上机,做编程题 中的第1、2两题。 其中第1题提示如下: ESC键的扫描码为01H,ASCII码为1BH;空格 的ASCII码为20H。 使用BIOS调用,参见P310页。 INT 16H AH=0 从键盘读入字符 AL=字符码 AH=扫描码 AH=1 读键盘缓冲区 ZF=0 AL=字符码 AH=扫描码 ZF=1 缓冲区空

汇编语言源程序上机过程

汇编语言源程序上机过程

实验任务
分析题意,绘制程序流程图;
编写汇编源程序,并以自己的班级学号的 组合为文件名保存。

如: j051_001_2.asm 表示计 051 班 001 号 同学的实验2的源程序。
汇编、连接并调试所编源程序。 按照实验指导书要求,撰写实验报告。
用文本编辑工具即可 注意:所保存的文件必须以.ASM作为文件 后缀名 用汇编程序MASM.EXE对源程序 .ASM文件进行汇编,得到.OBJ文件
汇编程序
连接程序
用连接程序LINK.EXE连接所生成的 .OBJ文件,得到.EXE文件
文件名,源程序中的变量名、助记符等不区分大小写

已知x,y,z,v是16位带符号数,请编程 完成下式算术运算,并把结果存入w单元。 (v-(x*y+z-540))/x
cwd add cx,ax adc bx,dx sub cx,0540d sbb bx,0 mov ax,v cwd sub ax,cx sbb dx,bx idiv x mov w,ax mov ah,4ch int 21h code ends end start
几个文件
.ASM——汇编源程序 .OBJ——目标文件 .LST——列表文件 .CRF——产生交叉引用表文件的文件(了解) .MAP——连接映像文件(了解) .EXE——可执行文件 .COM——可执行文件(了解)
汇编语言程序的上机过程
汇编语言程序的编辑与调试环境
汇编语言程序的上机过程 利用DEBUG调试汇编语言程序的方法
汇编语言程序的编辑与调试运行环境
编辑程序,如记事本等文本编辑工具软件;
汇编程序,如MASM.EXE;
连接程序,如LINK.EXE;
调试程序,如DEBUG.EXE。

汇编语言程序上机

汇编语言程序上机

汇编语言程序上机过程1.编写源程序进入MS-DOS方式,进入MASM40子目录,提示符后键入edit 源文件名.asm,回车,利用DOS的全屏幕编辑软件编写汇编语言源程序,存盘,退出也可以先在WINDOWS环境中用记事本编写源程序,存为扩展名为.asm的文件(注意文件保存在MASM40子目录下),再进入MS-DOS方式,进入MASM40子目录2.汇编源程序提示符后键入masm 源文件名.asm,回车,提示输入OBJ文件名,按回车提示输入LST文件名, 键入源文件名,回车这两步只要试一次,打开它们了解其作用即可,以后就一路按回车提示输入CRF文件名, 键入源文件名,回车汇编完成,源程序中如有错误,显示错误信息3.如汇编后报错,改正源程序中的错误,直至汇编无错,则生成源文件名.obj4.连接提示符后键入link 源文件名,回车,对于提示信息,全部按回车若无连接错误,则生成源文件名.exe5.运行提示符后键入源文件名,回车6. 提示符后键入exit,回车,退出DOS环境调试软件Debug使用说明:DOS环境下,提示符后键入debug 源文件名.exe,回车,出现提示符’_’1._u[address] (反汇编命令)从指定的地址起反汇编32个字节,若不指定,则从头开始或从上一个u命令的最后一条指令的下一个单元开始反汇编2._g[=address1] [address2] (运行命令)从指定的地址address1起执行,如不指定则从当前的CS:IP开始执行(address1为000则从头开始执行),当执行到后面的断点地址address2时,停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令3._t[=address] [n](跟踪命令)从指定的地址address起执行n条(不指定n,则执行一条指令)后停下来, 显示当前所有寄存器及标志位的内容,和下一条将要执行的指令, 如不指定address则从当前的CS:IP开始执行4._d[address]或_d[range]在DS段寄存器经MOV指令传送有具体值后,从指定的数据段偏移地址address起开始显示80个字节或指定范围的字节的内容,如_d000 020显示数据段中偏移地址为000h至0020h的字节的内容,如在address前指定段寄存器(CS、SS、ES),也能观察到其它段的内容5._r (显示所有寄存器和标志位内容)6._q (退出debug)Debug的使用练习:●在DOS提示符下键入debug aswjsj2.exe●_u 回车(或_u000 回车)反汇编32个字节,显示内容为:代码段段地址:偏移地址机器代码指令(地址表达式的值已算出)可看出该指令的机器代码的存放地址和长度(即为几字节指令)问:(1)指令mov dl,2对应的机器代码为多少?是几字节指令?(2)在指令部分,原先的mov di,offset d1已变为mov di 000a,故可知变量d1在数据段中的偏移地址为000a,由于在数据段中d1,d2,z是连续定义的,故变量d2的偏移地址和z 的偏移地址各是多少?(3)原先的call p1已变为call 0080, 问过程p1在代码段中的起始偏移地址为多少?●_r 回车显示所有寄存器和标志位内容观察CS、IP的值●_t 5 回车(或_t=000 5 回车)从开头执行5条指令 (使每个段寄存器有了具体值)后停下_d000 回车察看数据段从偏移量为000开始的10个单元的内容,为多少?●_u000 回车察看源程序中标志1处的下一条指令,其偏移地址是多少?将它作为断点地址_g 断点地址,回车_d000a, 回车察看变量d1的值变为了多少?●采用类似的方法将标志2处的下一条指令作为断点,运行至断点处, 察看变量d2的值变为多少?●将标志3处的下一条指令作为断点,运行至断点处, 察看AL的值为多少?●将标志4处的下一条指令作为断点,运行至断点处, 察看AL的值为多少?弄清das指令的作用●将标志5处的下一条指令作为断点,运行至断点处,察看变量z的值为多少?●_q 回车结束Debug,返回DOS提示符下。

汇编语言上机过程

汇编语言上机过程

汇编语言上机过程一、用汇编语言编写的源程序,使之运行必须经过以下几个步骤:1.用编辑程序建立一个扩展名为.ASM的汇编语言源程序文件。

2.调汇编程序(MASM),对源程序汇编,生成机器码目标文件,扩展名为.OBJ。

3.连接(LINK)目标文件,生成可执行文件,扩展名为.EXE。

4.运行可执行文件。

5.如果程序运行有错,可调用DEBUG 程序对.EXE文件进行调试。

二、编辑汇编语言源程序可用各种编辑软件来建立汇编语言源程序,例如记事本。

先保存为.TXT文件,然后改为.ASM文件,方法是在windows界面:工具——文件夹选项——查看——将“隐藏已知文件的扩展名”选项去掉。

然后将扩展名.TXT直接改为.ASM,汇编程序文件名称由用户自定(只能用英文字母、数字下划线)。

三、编译汇编语言源裎序用MASM程序汇编源程序,生成浮动目标程序(即扩展名为.OBJ的文件),这里产生的是浮动的目标模块,是不可执行程序。

汇编前,在DOS状态下用下列命令可以打开源程序,例如打开z1.asm的方法是:>type z1.asm <CR>则屏幕上显示出z1.asm的源程序。

汇编z1.asm文件过程的屏幕操作与显示如下:>masm z1.asm<CR>屏幕显示以下各行(一次一行),提示用户所应键入的信息:OBJECT FILENAME [ Z1.OBJ ] <CR>SOURCE LISTING [ NUL.LST ]:<CR>CROSS REFERENCE [ NUL.CRF]:<CR>产生目标文件(.OBJ)是汇编的主要目的,通常用户可以直接回车,表示采用默认文件名。

(.LST)文件为列表文件,提供全部汇编后的信息。

若用户不需要这些信息,可直接回车。

(.CRF)文件为交义引用文件,要建立交叉引用文件,则键入文件名。

MASM将为用户建立扩展名为(.CRF)的交叉引用文件,这里所得到的交叉引用文件,必须调用CREF程序处理,以建立一个按字母顺序排列的能被显示或打印的源程序中的符号(包括变量)表。

汇编语言程序设计 上机基本操作

汇编语言程序设计  上机基本操作

2.编辑命令 (1) . 帮助命令 Ctrl+J 用来查看系统提供的帮助信息. (2).退出编辑命令 a. Ctrl+KD或PF1键命令,将当前被编辑的文件存入磁盘,然 后退出编辑壮态,回到”起始命令表”; b. Ctrl+KX或KD. 但返回的是操作系统下; c. Ctrl+KQ或PF2键.它放弃当前被编辑文件,返回到”起始 命令表”. 3.光标移动命令 可以用Ctrl+字母(E,X,S,D,R…)实现光标的移动. 4.删除与插入命令 Ctrl+G,+T,+Y,或用DEL进行删除操作;用Ctrl+V,+N进行插入 5.打印命令: 按下P键后,屏幕上显示是否输出到磁盘上(Y/N)? 你可以按要求选择.
汇编语言程序设计
汇编语言上机,可使用IBM-PC兼容机,使 用DOS操作系统,若是Windows操作系统,要切 换到DOS操作系统.启动MS-DOS操作系统,在 计算机启动时,按ESC键,进入操作系统选项,并 切换到MS-DOS操作系统. 系统里必须安装有 WordStar或PCED或EDLTN软件.WordStar是 文字处理软件;PCED是全屏幕编辑程序;EDLIN 是行编辑程序.在下面的操作中一一见绍……..
五、调试程序DEBUG 1。DEBUG程序的调用 在DOS提示下, C>DEBUG [D:] [path] [文件名] [参数1] [参数2] 2.DEBUG的主要命令 (1).显示内存单元内容的命令 D -D[地址]或[范围] (2).修改内存单元内容的命令 E -E 地址 内容表 例如:-E DS: 100 F3”XYZ” 8D 例如:-E 100: 18E4: 0100 89.78 此命令是将原100号单元的内容89改为78.

汇编语言程序上机过程

汇编语言程序上机过程
8086汇编语言程序上机过程
上机过程(续)
对源程序MYFILE.ASM进行汇编的方法: 在DOS状态下,输入命令即启动了汇编程序。 MASM MYFILE.ASM(回车) 此命令执行后,会出现下面的3行信息,依次 按回车键(即选择默认值)即可建立目标文件 MYFILE.OBJ。
Object Filename [MYFILE.OBJ]: Source Listing [Nul.LST]: Cross Reference [Nul.CRF]:
运行调试(续)
1.DEBUG的运行 在DOS状态下,输入下列命令之一,就可以进 入DEBUG调试状态。 命令一:DEBUG ↙ (回车) 格式二:DEBUG 可执行文件名 ↙(回车) 进入DEBUG调试状态后,将显示提示符“-” ,此时,可输入所需的DEBUG命令。
8086汇编语言程序上机过程
8086汇编语言程序上机过程
运行调试-DEBUG的主要命令 (6)汇编命令A 格式为:-A [地址] 该命令允许输入汇编语言语句,并能把它 们汇编成机器代码,相继地存放在从指定 地址开始的存储区中。 必须注意:输入的数字均默认为十六进制 数。
8086汇编语言程序上机过程
运行调试-DEBUG的主要命令 (7)反汇编命令U 格式一:从指定地址开始,反汇编32字节 -U [地址] 格式二:对指定范围内的存储单元进行反 汇编 -U [范围]
8086汇编语言程序上机过程
运行调试-DEBUG的主要命令 (3)检查和修改寄存器内容的命令R 格式一:显示CPU内部所有寄存器内容和标 志寄存器中的各标志位状态 -R 格式二:显示和修改某个指定寄存器内容 -R寄存器名
例如:-R AX
格式三:显示和修改标志寄存器内容 -RF

汇编语言上机步骤

汇编语言上机步骤

实验一汇编语言上机基本步骤一、实验目的:熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验环境:1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容:1.前期准备:在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。

1)建立自己的工作子目录(例如MYTEST):C:\>MD MYTEST2)进入自己的工作子目录:C:\>CD MYTEST3)将所需工具软件从其它地方(如C:\MASM)拷贝进自己的工作子目录:C:\MYTEST>COPY C:\MASM\MASM.EXEC:\MYTEST>COPY C:\MASM\LINK.EXE2.编写源程序:原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。

因此,建议使用DOS环境下的EDIT软件。

1)在DOS系统操作提示符下键入EDIT并回车,即可进入EDIT文本编辑环境。

如果没有进入,检查当前路径下是否存在EDIT.EXE文件,以及文件是否完整等。

2)从键盘输入下列程序(不必输入注释部分):CODE SEGMENT;定义一个CODE段ASSUME CS:CODE;定义CODE段为代码段START:;可执行语句起始处MOV AH,02H ;以下三条语句将显示字母aMOV DL,’a’INT 21HMOV AH,4CH ;以下二条语句将返回DOSINT 21HCODE ENDS;CODE段结束END START;整个程序结束该程序的功能是仅在CRT屏上显示一个字母a,完成功能的只有其中的三条语句,但其它部分则是一个完整的汇编语言源程序必不可少的部分。

11--汇编语言程序的上机过程

11--汇编语言程序的上机过程

零ZF
辅助进位AF 奇偶PF 进位CF
ZR(零)
AC(有进位) PE(偶) CY(有进位)
NZ(非零)
NA(无进位) PO(奇) NC(无进位)
格式2:
R 寄存器名 功能: 显示和修改指定寄存器的内容。 格式3: RF 功能: 显示和修改标志位的状态。
(6)汇编命令 格式1: A [ 地址 ] 功能: 从指定地址开始允许输入汇编语句,DEBUG将把它们汇编成机器代码, 相继存放在指定地址开始的存储单元中。
(2)建立ASM文件 通过使用文本编辑程序(例如记事本、写字板等)建立一个后缀名 为.A用汇编程序MASM对ASM源程序文件进行汇编,产生OBJ二进制目标文 件。基本操作方法为: > MASM ↙ 然后根据提示进行操作。
汇编程序的输入文件是ASM文件,其输出文件可以有以下三个。 ① OBJ二进制目标文件 该文件是汇编操作的主要目的,是必需的。
INT 20H 指令高字节
┇ 00FFH SS PSP最后一个字节
堆栈区第一个字节 (用户程序第一个字节)
┇ 堆栈区最后一个字节 用户堆栈段区
SP
栈底 ┇ 数据段区第一个字节 ┇ 数据段区最后一个字节 用户数据段区 用户程序区

CS 用户程序第一条指令 ┇ IP 用户程序 第一条被执行的指令 ┇ 用户程序最后一条指令 ┇ 用户代码段区

总结 汇编程序具有以下作用 ① 将指令性语句翻译为相应的机器代码指令。 ② 确定标号、过程名和变量名在各自逻辑段内的偏移地址,这个偏移 地址还不是这些名字的最终偏移地址。
链接程序具有以下作用 ① 在起始地址为00000H的地址空间中,安排所有逻辑段的空间位置, 从而确定出所有物理段在这个地址空间中的段地址。 ② 确定所有过程名、变量名和标号的段内偏移地址。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言程序上机过程
实验目的:
1、掌握常用工具软件 PE,MASM和LINK的使用。

2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。

3、利用的 1号功能实现键盘输入的方法。

4、了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。

程序:
datasegment
messagedb'This is a sample program of keyboard and
disply'
db0dh,0ah,'Please strike the key!',0dh,0ah,'$'
dataends
stacksegmentpara stack 'stack'
db50 dup(?)
stackends
codesegment
assumecs:code,ds:data,ss:stack
start:movax,data
movds,ax
movdx,offset message
movah,9
int21h
again:movah,1
int21h
cmpal,1bh
jeexit
cmpal,61h
jcnd
cmpal,7ah
jand
andal,11011111b
nd:movdl,al
movah,2
int21h
jmpagain
exit:movah,4ch
int21h
codeends
endstart
实验步骤:
1、用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。

2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。

若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3、用TYPE命令显示1产生的.LST文件。

4、用LINK将.OBJ文件连接成可执行的.EXE文件。

5、在DOS状态下运行LINK产生的。

EXE文件。

即在屏幕上显示标题并提示你按键。

每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。

按ESC键可返回DOS。

若未出现预期结果,用DEBUG检查程序。

实验报告:
1、汇编,连接及调试时产生的错误,其原因及解决办法。

2、思考:
1)若在源程序中把INT 21H的'H'省去,会产生什么现象? 2)把 INT 21H 4CH号功能改为 INT 20H,行不行?。

相关文档
最新文档