汇编语言上机过程(自学)

合集下载

汇编语言程序的上机过程

汇编语言程序的上机过程

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

汇编程序我们提供宏汇编程序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回车。

第八讲(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 [起地址] [末地址] 不写地址执行刚刚汇编过的程序。

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

汇编语言上机过程(自学)

汇编语言上机过程(自学)
汇编语言上机过程(自学)
附加1 用DEBUG验证程序段
通常汇编教学中,汇编程序结构会在指令系 统后面讲,学生在学习指令系统时由于没有讲汇 编程序结构而无法编写汇编程序来加深对汇编指 令的理解,因此,在这里我们通过2个例子,介 绍使用DEBUG调试工具编写程序段来学习汇编 指令。 有关DEBUG的常用命令的用法请参看教材的 P32 2.5 DEBUG主要命令
为 1时 OV DN EI NG ZR AC PE CY
为 0时 NV UP DI PL NZ NA PO NC
再举一个有访存操作的例子 MOV SI, 0050H MOV DI, 0100H MOV CX, 5 CLD REP MOVSB ; (DS)=2000H ; (ES)=3000H
1)先用A命令输入程序
2)用R命令修改DS和ES寄存器到约定值 DS的原始值 输入的修改值
3)用D命令查看源数据区和目标数据区
4)用E命令初始化源数据区后再用D命令检查源数据 区和目的数据区
5)单步跟踪执行程序
6)执行后检查源数据区和目标数据区
注意,用A命令输入指令时,如果输入错误debug会立 即指出错误和位置。地址不会变化,以便用户修正指 令。
标志位
这是MOV BX,[SI]的执行结果
这是还未执行的下 一条指令
3)对于系统功能调用,可以用G命令来自置断点执行, 也可以用P命令跳过过程与系统功能服务程序。
设断点执行,断点设在INT 21H的后一句 INT 21H输出的一个字符
注意:DEBUG只支持16位汇编调试,如果要编写32位 汇编程序,需要用MASM 6.11汇编和连接,用 CodeView软件查看执行代码。但MASM 6.11中带的 CodeView 4.01可以查看32位程序的执行代码,不能进 行单步调试。要调试可以考虑使用SoftICE软件。 另外,VC嵌入汇编可以支持80486的所有指令,也支 持32位汇编。

有图示的汇编语言程序上机过程示例

有图示的汇编语言程序上机过程示例

汇编语言上机过程示例一、初次上机环境准备在WINDOWS操作系统的资源管理器中,在d盘上新建自己的文件夹,用英文字母命名,并且名字长度不超过8个字符,例如d:\zhangsan(注意:dos下所有的文件夹名字、文件的主文件名都不能超过8个字符)。

把汇编软件masm.exe和连接软件link.exe和调试软件debug.exe复制到你的文件夹内,和下面你输入的源程序放在同一个文件夹内。

(即确保你的文件夹内有汇编语言上机所需的软件masm.exe,link.exe,debug.exe)二、汇编语言程序的上机过程1、编辑(输入、修改)汇编语言源程序(1)在你的文件夹内用记事本新建一个文本文档,假设主文件名是abc,把文件的扩展名由txt修改为asm (如果看不到文件的扩展名,请点击windows资源管理器的:“工具”——>“文件夹选项”——>“查看”选项卡,把“隐藏已知文件类型的扩展名”前的对勾去掉。

)。

(2)打开该文档输入汇编语言源程序并且保存。

注:也可以在DOS下用edit软件编辑汇编语言源程序。

注意:文件扩展名必须为.asm并且不能省略。

2、打开dos或者命令提示符窗口以及路径切换(1)打开dos或者命令提示符窗口win98下:打开ms-dos窗口(开始菜单——>程序——>ms-dos方式);win2000、winXP下:打开命令提示符窗口(开始菜单——>程序——>附件——>命令提示符),结果如下图所示:(2)切换到d盘:在dos提示符(下图中类似c:\documents and settings\guest>的就是dos提示符,一般为当前路径加大于号构成)下输入d:,如下图所示:然后回车,结果如下图所示:(3)切换到你的路径(例如你的文件夹在d盘根目录下,名字为zhangsan,则在dos提示符下(一般是D:\>)输入cd \zhangsan),如下图所示:然后回车,结果如下图所示:3、对源程序进行汇编在dos提示符下输入masm abc.asm,如下图所示:然后回车(文件的扩展名.asm可以省略),可能需要多次回车(不要输入其它内容,只需要回车)直到回到dos 提示符状态,结果如下图所示:如果汇编通过,显示如上图,0 warning errors,0 severe errors(在windows的资源管理器下查看zhangsan 文件夹,在当前文件夹内生成了主文件名与汇编语言源程序的主文件名同名、扩展名为.obj的目标文件),则进行第4步;如果汇编没通过(即没生成目标文件),例如类似下图显示:1 severe errors,则根据屏幕上的错误提示进行第1步(修改源程序),直到汇编通过。

汇编语言程序的上机过程

汇编语言程序的上机过程

汇编语言程序的上机过程
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显示了当前指向的指令及其代码,即即将执行的下一条语句。

汇编语言上机过程

汇编语言上机过程

汇编语言程序的上机过程一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。

▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。

▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。

▪调试程序:DEBUG.EXE,用于调试可执行程序。

二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。

1.编辑源程序用文本编辑软件创建、编辑汇编源程序。

常用编辑工具有:、记事本、Word等。

无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。

2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。

汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。

汇编过程如下:在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。

此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。

Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。

如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。

此时,需要进行修改,然后再进行汇编。

如此进行,直至汇编无错误,得到目标文件为止。

3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。

连接过程如下:▪在DOS状态下,输入命令:LINK MYFILE.OBJ(回车),即可完成连接。

▪与汇编过程类似,如果连接过程中出错,那么程序会在屏幕上显示提示信息。

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

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

返回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 缓冲区空

汇编语言程序上机

汇编语言程序上机

汇编语言程序上机过程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. 准备工作在开始上机之前,我们需要做一些准备工作。

首先,确认计算机已经连接好必要的硬件设备,例如键盘、显示器等。

其次,确保操作系统和开发环境已经正确安装并能够正常运行。

最后,根据需要准备好所需的汇编语言文档和程序样例。

2. 创建新项目在开始编写汇编语言程序之前,我们需要创建一个新的项目。

在项目中,我们可以组织和管理相关的文件和代码。

通常,我们会选择一个合适的集成开发环境(IDE)来创建和管理项目。

3. 编写程序在创建项目之后,我们可以开始编写汇编语言程序。

首先,我们需要了解目标机器的指令集和寄存器,以便正确地编写程序。

然后,根据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。

在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。

4. 调试程序编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性和稳定性。

调试是一个迭代过程,通常包括以下步骤:- 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。

- 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行过程,并检查各寄存器和内存的值。

- 监视变量:在调试过程中,我们可以监视程序中的变量值,以验证其正确性。

- 查看输出:观察程序的输出结果,与预期结果进行比较,以确定程序是否按照预期执行。

- 修复错误:如果发现程序中存在错误,我们需要对程序进行修改和调整,直到问题解决为止。

5. 运行程序在完成程序的调试之后,我们可以运行程序并观察其运行效果。

在运行过程中,我们可以测试程序的各种功能,以确保其正常工作。

二、调试方法1. 打印输出在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。

汇编语言上机过程

汇编语言上机过程

汇编语言上机过程一、用汇编语言编写的源程序,使之运行必须经过以下几个步骤: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程序处理,以建立一个按字母顺序排列的能被显示或打印的源程序中的符号(包括变量)表。

汇编上机(汇编语言步骤)

汇编上机(汇编语言步骤)
源程序保存的扩展名为:.ASM
2)汇编(MASM或ASM)源程序
以命令方式启动汇编程序时,须在DOS下打入下列格式命令:
MASM<源文件>,[<目标文件>],[<列表文件>],[<交叉参考文件>]
MASM中的主要文件类型
汇编源程序(.ASM)
目标代码文件(.OBJ)
列表文件(.LST):列出源程序和机器语言程序
清单,并给出符号表。使调试程序更加方便
交叉索引文件(.CRF):列出了源程序中定义的符 号(包括:标号、变量等)和程序中引用这些符号的 情况(包括符号定义所在的行号、引用符号的行号 等)。
3)程序连接
连接程序LINK用来连接汇编程序生成的目标代码文件
(.OBJ)以及指定的库文件,产生一个可执行的装入文件 (.EXE)。
以命令方式启动连接程序时,必须在DOS下输入如下格式
命令: LINK<目标代码模块表>,[<列表文件名>],[<库文件名表>]
4)执行程序
C:>example(扩展名EXE可缺省)
5)调试程序
调试程序DEBUG是专为宏汇编语言设计的一种调试
手段,是我们必须掌握的一种调试工具。
汇编语言的程序一般要经过以下步骤汇编语言上机步骤汇编语言上机步骤源程序需要用文本编辑器进行编写在dos下可以使用peedit或ቤተ መጻሕፍቲ ባይዱordstar进行编写
汇编语言上机步骤
汇编语言的程序一般要 经过以下步骤
编辑 汇编(MASM或ASM)
连接(LINK)
调试(DE-BUG)
1)编辑源程序 源程序需要用文本编辑器进行编写,在DOS下,可以 使用PE、EDIT或WORDSTAR进行编写;Windows 下,可以使用记事本或其他文本编辑器编写。

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

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

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.

汇编语言上机步骤

汇编语言上机步骤

实验一汇编语言上机基本步骤一、实验目的:熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验环境: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的地址空间中,安排所有逻辑段的空间位置, 从而确定出所有物理段在这个地址空间中的段地址。 ② 确定所有过程名、变量名和标号的段内偏移地址。

汇编教程 汇编语言上机过程

汇编教程 汇编语言上机过程

3、连接程序的使用 、
目标文件(.OBJ)必须经过连接以后才能成为可执行 文件,连接后的可执行文件具有绝对地址 。 D:\MASM>LINK 文件名
Object Modules[.OBJ]:要目标文件名 ,缺省类型为 缺省类型为OBJ : Run file[文件名 文件名.exe]:要可执行文件名 ,缺省与 缺省与OBJ文件同名 文件名 : 文件同名 List file[NUL.MAP]:要内存分配图文件名 ,直接回车则不要。 直接回车则不要。 : Libraries[.LIB]:提示是否用到库文件,汇编程序没有库文件, :提示是否用到库文件,汇编程序没有库文件, 回车即可。 回车即可。
输入或修改结束后,按ALT出现屏幕菜单,↓可 下拉菜单,↑↓←→可选项。 存盘后出现文件名.ASM文件 文件…. 存盘后出现文件名 文件
2、宏汇编程序的使用(设定当前目录为 、 设定当前目录为MASM) )
D:\MASM>MASM 文件名.ASM : Source filename[.ASM]:要源文件名 ,缺省类型为.ASM Object filename[文件名.OBJ]:要目标文件名 ,直接回 车为默认值 Source listing[NUL.LST]: 要源文件列表文件名 (通常用同名.LST),直接回车默认不要列表文件。 Cross reference[NUL.CRF]: 要交叉引用表文件名 , 该文件用于形成符号表文件.REF,直接回车默认 不要该文件….
几种常用的DEBUG 命令: 命令: 几种常用的
(1) (2) (3) (4) (5) (6) (7) (8) D:显示存储单元内容 E:修改存储单元内容 R:显示、修改寄存器内容 U:反汇编命令 G:运行命令 T:跟踪命令 Q:退出命令 A:汇编命令

4.2 汇编语言上机过程

4.2 汇编语言上机过程

4.2 汇编语言上机过程用ARM汇编语言编写的源程序,要使之运行必须经过以下几个步骤:(1)编辑汇编源程序,保存为文件名后缀是“.s”的文件。

(2)调用汇编程序对源程序进行汇编,生成目标文件。

(3)连接目标文件,生成可以放进ARM软件仿真器进行调试的映像文件或者可下载到ARM的目标板执行的二进制文件。

(4)对生成的最终文件进行调试。

4.2.1 编辑汇编语言源程序可以使用简单的Windows自带的记事本程序来编辑ARM的汇编程序。

单击“开始菜单”|“程序”|“附件”|“记事本”命令,输入汇编代码,保存为“.s”文件。

也可以使用CodeWarrior IDE来编辑汇编程序。

为使编辑之后的源程序能被编译运行,需要新建一个工程。

4.2.2 编译汇编语言源程序ARM的编译器有如下几种:armcc:ARM C编译器,具有优化功能,兼容ANSI C。

tcc:Thumb的C编译器,同样具有优化功能兼容ANSI C。

armcpp:ARM C++编译器,遵循ANSI C++或者EC++标准。

tcpp:Thumb的C++编译器,遵循ANSI C++或者EC++标准。

armasm:支持ARM和Thumb的汇编器。

这些编译器输出的是ELF格式的目标文件,可以包括RAWF2格式的调试信息。

同时通过特殊的控制选项可以输出汇编语言文件或者列表文件。

4.2.3 连接装配汇编程序使用armlink程序对ARM的汇编源程序进行连接,它也可以将多个.o目标文件连接生成最终的可执行文件。

4.2.4 汇编程序的运行4.2.3小节中生成的hello.axf文件是ARM 的ELF格式的可执行映像文件,这个文件可以载入AXD进行仿真调试。

对于该文件,我们可以使用armsd在终端模拟它在ARM目标机上的运行。

4.2.5 汇编程序的调试armsd是ARM的一个终端运行的调试工具,由于没有可视化的界面,使用比较繁琐,这里不再介绍。

汇编上机流程如下

汇编上机流程如下

第一次上机流程如下:1.将Masm615文件夹拷贝到D盘下;2.编写汇编源程序(扩展名为.asm)。

新建一个word文档或者记事本,输入源程序,然后将其存入D:\Masm615目录下,扩展名改为.asm,如exam.asm(第一次上机的程序为P182中7.1.3里的源程序);3.点击开始——运行,输入cmd,之后点击确定按钮,弹出DOS命令框;4.在命令框中输入D:,再敲回车,进入D盘;5.接着输入CD masm615,再敲回车,进入D:\masm615目录下;6、以下的内容遵照P282第七章7.1.3里讲述的上机内容,(1)首先输入masm exam.asm ,再敲回车,对源程序进行汇编。

如果源程序没有错误,汇编成功后生成文件exam.obj7.(2)输入link exam.obj ,再敲回车,连接目标文件。

简单方式下出现的4个提示依次提的4个问题,直接按回车就可以,自动选择默认选项。

如果成功,会生成可执行文件exam.exe 。

8.(3)输入exam,再按回车,运行可执行文件,得到运行结果。

以后每次上机的流程都和第一次相同,只是源程序不同。

第一次上机的源程序:输出显示字符串HOW ARE YOU! P282的7.1.3的程序。

(exam.asm ) 第二次上机的源程序:运行例3.15,验证输入输出。

(315.asm)第三次上机的源程序:调试顺序结构程序。

P145的课后题4.1,计算2]310)0232([*-=H H z ,结果为144,将结果以十进制的形式输出显示。

第四次上机的源程序:调试分支结构程序。

P108例题4.3 (43.asm )第五次上机的源程序:调试循环结构程序 给出十个有符号数,编程求出其中的最大值,并将结果输出显示 。

(49.asm )第六次上机的源程序:调试子程序的应用 410.asm 分别以十进制和十六进制的形式输出显示指定数据 第七次上机的源程序:运行模块程序设计第八次上机的源程序:运行中断程序。

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

现代微机原理与接口技术
/
编译执行后看结果
现代微机原理与接口技术
/
/
现代微机原理与接口技术
题目:非压缩BCD码的减法运算,做68-9
mov ax, 0608h mov bl, 09h sub al, bl aas
运行debug
/
现代微机原理与接口技术
首先用A命令输入程序
为0时 NV UP DI PL NZ NA PO NC
/
现代微机原理与接口技术
再举一个有访存操作的例子 MOV SI, 0050H MOV DI, 0100H MOV CX, 5 CLD REP MOVSB ; (DS)=2000H ; (ES)=3000H
现代微机原理与接口技术
汇编语言上机过程(自学)
/
现代微机原理与接口技术
附加1 用DEBUG验证程序段
通常汇编教学中,汇编程序结构会在指令系统后 面讲,学生在学习指令系统时由于没有讲汇编程 序结构而无法编写汇编程序来加深对汇编指令的 理解,因此,在这里我们通过2个例子,介绍使 用DEBUG调试工具编写程序段来学习汇编指令 。 有关DEBUG的常用命令的用法请参看《现代微 机原理与接口技术》教材的附录A.2.4
将下列程序输入到asmsample.cpp中
现代微机原理与接口技术
#include <iostream.h> int power2(int, int); void main(void) { cout<<"2的6次方乘5等于:\t"; cout<<power2(5,6)<<endl; } int power2(int num, int power) { _asm { mov eax, num ; 取第一个参数 mov ecx, power ; 取第二个参数 shl eax, cl ; 计算EAX=EAX×(2CL) } // 返回值存于EAX } /
现代微机原理与接口技术
设断点执行,断点设在INT 21H的后一句 INT 21H输出的一个字符
/
现代微机原理与接口技术
注意:DEBUG只支持16位汇编调试,如果要编写32位 汇编程序,需要用MASM 6.11汇编和连接,用 CodeView软件查看执行代码。但MASM 6.11中带的 CodeView 4.01可以查看32位程序的执行代码,不能进 行单步调试。要调试可以考虑使用SoftICE软件。 另外,VC嵌入汇编可以支持80486的所有指令,也支 持32位汇编。
Debug中只使用16进制数 ,且无需加H后缀 直接用回车退出汇编编辑状态
/
现代微机原理与接口技术
使用T命令跟踪执行
第一个T命令要带上程序首地址
后面的T命令无需地址 标志位
这是还未执行的 下一条指令的地 址和指令码
这是还未执行 的下一条指令 的反汇编
当前指令执行后的 各寄存器的结果
/
现代微机原理与接口技术 附加2 汇编语言上机过程 用MASM 5.0上机过程(注意是在CMD窗口中执行) 第一步编辑:
/
第二步汇编:
现代微机原理与接口技术
可以不输入,用回车回应
/
/
调试完后用Q命令退出DEBUG。 DEBUG命令参见教材2附录D。下面给出DEBUG中标 志位状态符号的含义。
现代微机原理与接口技术
标志 溢出OF 方向DF 中断IF 符号SF 零位ZF 辅助AF 奇偶PF 进位CF
为1时 OV DN EI NG ZR AC PE CY
1)先用A命令输入程序
/
现代微机原理与接口技术
2)用R命令修改DS和ES寄存器到约定值 DS的原始值 输入的修改值
3)用D命令查看源数据区和目标数据区
/
现代微机原理与接口技术
4)用E命令初始化源数据区后再用D命令检查源数据 区和目的数据区
http://Biblioteka /
现代微机原理与接口技术
用VC6.0实现C++中嵌入汇编
/
现代微机原理与接口技术
/
建立源程序asmsample.cpp
现代微机原理与接口技术
/
反汇编的源码
/
现代微机原理与接口技术
2)用T命令单步跟踪,逐条执行看中间结果,DEBUG 将显示每个寄存器以及各标志位的当前值
标志位
这是MOV BX,[SI]的执行结果
这是还未执行的下 一条指令
/
3)对于系统功能调用,可以用G命令设置断点执行, 也可以用P命令跳过过程与系统功能服务程序。
修改好后再汇编:
现代微机原理与接口技术
/
第三步连接并执行:
现代微机原理与接口技术
可以直接用回车回应
执行
/
用DEBUG调试程序: 1)用U命令查看程序和目标码及指令地址
现代微机原理与接口技术
段值 偏移 指令码
/
5)单步跟踪执行程序
现代微机原理与接口技术
/
现代微机原理与接口技术
6)执行后检查源数据区和目标数据区
/
现代微机原理与接口技术
注意,用A命令输入指令时,如果输入错误debug会立 即指出错误和位置。地址不会变化,以便用户修正指 令。
相关文档
最新文档