汇编上机参考文档i

上传人:子 文档编号:43034521 上传时间:2018-06-04 格式:DOC 页数:7 大小:147KB
返回 下载 相关 举报
汇编上机参考文档i_第1页
第1页 / 共7页
汇编上机参考文档i_第2页
第2页 / 共7页
汇编上机参考文档i_第3页
第3页 / 共7页
汇编上机参考文档i_第4页
第4页 / 共7页
汇编上机参考文档i_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《汇编上机参考文档i》由会员分享,可在线阅读,更多相关《汇编上机参考文档i(7页珍藏版)》请在金锄头文库上搜索。

1、 汇编语言上机步骤一、上机前的软件准备:MS-DOS 操作系统(如:MSDOS6.22 , MSDOS7.0 等)在此,一般使用 win 中的 dos文本编辑器 (如:EDIT.COM , TURBO.EXE , TC.EXE , C.EXE ,等),在此一般用 win 中的记事本,汇编程序 (如:MASM.EXE , ASM.EXE 等)连接程序 (如:LINK.EXE 等)调试程序 (如:DEBUG.EXE 等)二、汇编程序建立过程:f.如果不正确,用调试工具调试,重新修改(逻辑错误)a.建立汇编源程序b.编译为目标文件d.连接为可执行文件 c.如果不通过,重新修改(语句错误) e 运行三

2、、进行详细说明以该程序为例:该程序用于输出一个字符串“hello”,源文件为 hb。txtcs1 segmentassume cs:cs1,ds:cs1start: push cspop dsmov ah,0 int 10hlea dx,str0mov ah,9int 21hmov ah,4chint 21hstr0 db hello,$cs1 ends end starta:建立汇编源程序(即:建立 文件名.asm)如果你建立源程序是.txt 文件也可以B编译你的源文件先启动 dos,到你的汇编文件夹目录下(汇编程序 连接程序 ,源文件都在该目录下)D:CD MASM50再输入命令 MASM

3、 HB。TXT 接下来回车后如果汇编成功, 则生成 HB。OBJ 文 件,也可以自 己命名默认生成 NUL。LST 文件,即不生成 输入 11,则生成 11.LST 文件默认生成 NUL。CRF 文件,即不 生成 输入 22,则生成 22.CRF 文件如果是 。ASM 文件, 则可以不加后缀名我们可以用记事本 或者 word 打开。11。LST 文件看看这个里面是什么如果在汇编的时候有错误,那么我们可以根据。LST 文件的提示来修改,直到可以汇编通过、汇编成功,无警告和错误那么就在该目录下生成 3 个文件各条指令的 有效地址各条指令的机器 码各条指令有 一个段一个标号,一个变量给出一些常见出错

4、信息,以便查对:1、Register already defined 汇编内部出现逻辑错误2、Unknown symbol type 在符号语句的类型中,有些不能识别的东西3、Symbol is multi-defined 重复定义一个符号4、Symbol not defined 符号没有定义5、Syntax error 语句的语法与任何可识别的语法不匹配6、Symbol is reserved word企图非法使用一个汇编程序的保留字(例:定义 add 为一变量)7、Not proper align/combine type SEGMENT 参数不正确8、One operand must b

5、e const 这是加法指令的非法使用9、Operands must be same or 1 abs 这是减法指令的非法使用10、Already have base register 试图重复基地址11、Illegal size for item 引用的项的长度是非法的,(如:双字移位)12、Illegal register value 指定的寄存器值不能放入“reg” 字段13、Must be AX or AL 某些指令只能用 AX 或 AL14、Improper use of segment reg 段寄存器使用不合法(如:mov ds,0)15、Division by 0 or ove

6、rflow 给出一个用 0 作除数的表达式16、value is out of range 数值大于需要使用的17、CS register illeal usage 试图非法使用 CS 寄存器18、DUP is too large for linkerDUP 嵌套太长,以至于从连接程序不能得到所要的记录C:连接过程经过连接之后,又生成了 HB。EXE OO。MAPD:运行输入 HB 就可以了啊运行结果E:调试过程可以不用后缀名生成的地图文件在连接的时候需要哪些库文件在程序中我们没有定义堆栈段,所以在连接的时候会提示没有堆栈段,但 是不影响我们使用堆栈,如果你没有定义,系统会自动生成一个堆栈段基

7、本的 DEBUG 命令:(注:在指令中用 括起来的内容可缺省)1)D(Dump)显示指定内存单元内容(一般用来看数据数的内容,即 DS 段):格式:d地址 从地址指定的内存单元显示 128 个字节的内容地址缺省时,显示上一个 DUMP 命令后面的内容d 地址范围 显示指定范围内的内存内容。示例:-d100 显示从 DS 段 100H 开始的内容(以十六进制显示)2)E(Enter)修改存储单元内容(一般在 DS 段)格式:e 地址 数据 用给定的数据代替指定范围的存储单元内容e 地址 修改一个指定内存单元的内容示例:-e ds:200 djxFF00AA 就可将 DS 段从 200 开始至 2

8、05 的内容替换为 64 6A 78 FF 00 AA3)G(GO)运行命令格式:-g =地址断点地址 1 断点地址 2 .断点地址 10从指定地址开始执行程序(如地址缺省从当前 CS:IP 开始),运行至断点地址 1停止,显示所有寄存器及标志位内容与下一条指令,如后面还有断点,可键入 g,继续执行。示例:-g001a 则执行从当前 cs:ip 至 001a 的指令注意:地址设置必须从指令的第一字节设起4)T(Trace)执行一条语句格式: -t =地址 从指定地址起执行一条语句后停下来,显示所有寄存器内容及标志位的值与下一条指令。如地址缺省则从当前 CS:IP 开始执行-t =地址value

9、 从指定地址起执行 value 条指令后停止。5)P(proceed)执行一个循环;一个软中断或 call 子过程格式:-p =地址n示例: mov ah,02hmov dl,41hint 21h此时用: -p 回车后系统将显示一个字符 A,如果在这不用 P,而改用 T,那么系统将进入 INT 21H 的中断调用中,出不来,这时你会误以为你的程序必须有后缀名在 dos 中,命令提示符为 在 DEBUG 中,命令提示符为_看清楚 了啊编错了,一定注意!6)R(register)显示并可修改寄存器内容格式:-r 显示所有寄存器内容-r 寄存器名 修改指定寄存器内容(可改:AX,BX,CX,DX,SP,BP,SI,DI,CS,DS,ES,SS,PC,IP,F)7)U(Unassemble)反汇编格式:-u 地址 从指定地址反汇编 32 个字节,若地址缺省则从当前地址汇编 32 个字节。-u 地址范围 对指定范围内的存储单元进行反汇编

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号