《汇编实验指导书(精品).ppt》由会员分享,可在线阅读,更多相关《汇编实验指导书(精品).ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、注意事项:注意事项:1、正确、合理使用存储器和寄存器。、正确、合理使用存储器和寄存器。准确地使用存储单元地址,会用各准确地使用存储单元地址,会用各种方式表示存储单元地址。种方式表示存储单元地址。正确、合理使用正确、合理使用CPU中各寄存器。中各寄存器。2、掌握调试工具、掌握调试工具DEBUG的使用。的使用。汇汇编编语语言言程程序序的的开开发发 源文件扩展名为源文件扩展名为.asm,且不能省略。且不能省略。汇编语言程序的开发步骤汇编语言程序的开发步骤1 1、编辑编辑建立建立汇编语言源程序汇编语言源程序(.ASM)(.ASM)用任何一种编辑软件用任何一种编辑软件,如如 EDITEDIT等。等。源文
2、件扩展名为源文件扩展名为.asm,且不能省略。且不能省略。按按逻辑段逻辑段来组织源程序;来组织源程序;以以END语句语句结束源程序;结束源程序;源文件源文件扩展名为扩展名为.asm,且不能省略。且不能省略。2 2、汇编汇编源程序源程序生成目标生成目标(.OBJ.OBJ)主要功能检查语法错误检查语法错误实现宏替换实现宏替换生成目标程序生成目标程序生成文件目标文件(目标文件(.OBJ)列表文件(列表文件(.LST)交叉引用文件(交叉引用文件(.CRF)汇编程序:汇编程序:MASM 格式:格式:MASM *.ASM 汇编程序汇编程序1、功能、功能 系统程序,对汇编语言源程序系统程序,对汇编语言源程序
3、(.ASM)进行汇编,进行汇编,生成二进制目标代码文件(生成二进制目标代码文件(.OBJ)。)。2、汇编过程汇编过程 汇编程序对源程序进行两遍扫描,主要完成:汇编程序对源程序进行两遍扫描,主要完成:1)检查源程序中各语句是否有语法错误。)检查源程序中各语句是否有语法错误。2)实现宏功能。)实现宏功能。3)生成目标程序。)生成目标程序。方法方法:C MASM 或或C MASM 源程序名源程序名生成生成 3 个文件个文件,分别是分别是:1.目标文件目标文件(.OBJ):2.列表文件列表文件(.LST):程序清单文件程序清单文件,把源程序中各语句把源程序中各语句与对应机器语言目标代码一一对应列出与对
4、应机器语言目标代码一一对应列出.3.交叉引用符号表文件交叉引用符号表文件(.CRF):列出源程序自定义的各列出源程序自定义的各个符号个符号,指明这些符号在源程序中的定义位置和引用指明这些符号在源程序中的定义位置和引用位置位置.3 3、连接、连接生成可执行程序生成可执行程序连接程序:连接程序:LINK 格式:格式:LINK *.OBJ 将多个程序模块进行连接,或将源程序与库文件进将多个程序模块进行连接,或将源程序与库文件进行连接。行连接。若需若需连接多个连接多个OBJOBJ文件,则用文件,则用“+”连接。连接。生成的主要文件生成的主要文件可执行文件(可执行文件(.EXE)内存映像文件内存映像文件
5、(.MAP)4、调试、调试 使用调试工具使用调试工具DEBUG,对可执行文件进对可执行文件进行调试行调试.5、执行、执行DEBUG 调试工具1、对可执行文件(、对可执行文件(.EXE)进行调试。进行调试。2、涉及、涉及CPU内部寄存器和存储单元。内部寄存器和存储单元。对寄存器对寄存器:直接使用寄存器名。:直接使用寄存器名。对存储单元对存储单元:使用逻辑地址:使用逻辑地址(段基值段基值:偏移量偏移量)段基值段基值:用段寄存器名或:用段寄存器名或4位位16进制常数。进制常数。偏移量偏移量:用用4位位16进制常数。进制常数。3、所有的、所有的DEBUG命令都为单一字母。命令都为单一字母。1、进入命令
6、、进入命令C DEBUG 文件名文件名 或或 C DEBUG -N 文件名文件名 -L2、退出命令退出命令 -Q3、显示命令显示命令D、R4、修改命令修改命令E5、运行命令运行命令G、T6、汇编命令汇编命令A7、反汇编命令反汇编命令U1、DEBUG的进入与退出的进入与退出1)D:DEBUG -N TEST.EXE 进入进入DEBUG,出现提示符出现提示符-装载文件:装载文件:-L D:DEBUG TEST.EXE 2)进入)进入DEBUG时,同时装载文件:时,同时装载文件:退出退出DEBUG并并返回操作系统:返回操作系统:格式:-Q 3、显示命令、显示命令1)显示存储单元内容)显示存储单元内容
7、D例:-D DS:100 -D 100 -D DS:100 10F 格式:D 地址 或 D 范围2)显示寄存器内容显示寄存器内容R格式:-R 或或 -R 寄存器名寄存器名显示所有寄存器内容、标志位情况及下一条指令。AX102A BX0000 CX0100 DX0000 SP0040 BP0000 SI0000 DI0000 DS1528 ES1428 SS1723 CS1822 IP0003 NV UP DI PL NZ NA PO NC1822:0003 8ED8 MOV DS,AX 4、修改命令、修改命令E1)修改存储单元内容修改存储单元内容A、用内容表修改用内容表修改 -E 地址 内容表
8、-E DS:100 F3XYZ8DB、逐个修改逐个修改 -E 地址地址 例:-E DS:0 1200:100 20 31 ;将20H修改为31H 输入一个字节的输入一个字节的16进制数,替代原单元中的内容。进制数,替代原单元中的内容。按空格键,显示下一单元的原有的内容。按空格键,显示下一单元的原有的内容。按连接符按连接符“-”,显示前一单元的内容。,显示前一单元的内容。按回车键结束。按回车键结束。2)修改寄存器内容)修改寄存器内容例:-R AX AX 0000 ;显示AX原有内容 :1111 ;修改;修改AX内容内容格式:R 5、运行命令、运行命令G、T1)连续运行命令连续运行命令G -G =
9、地址1,地址,地址 地址地址1:执行的起始地址执行的起始地址,若忽略若忽略,则以则以CS:IP 作为起始地址。作为起始地址。其它地址其它地址:断点地址,断点地址,DEBUG中允许最多可中允许最多可设设 10 个断点,顺序是任意的。个断点,顺序是任意的。地址所指处必须存放有效的地址所指处必须存放有效的8086指令。指令。2)跟踪运行方式跟踪运行方式 TA、单条跟踪方式单条跟踪方式-T =地址 若忽略地址,则从若忽略地址,则从CS:IP的现行值执行。的现行值执行。B、多条跟踪方式多条跟踪方式-T =地址 值 6、汇编命令汇编命令A汇编汇编:汇编格式指令翻译成机器语言目标代码。汇编格式指令翻译成机器
10、语言目标代码。-A 地址 从指定的地址开始,输入汇编语言语句,从指定的地址开始,输入汇编语言语句,A命令把命令把它们转换成机器码从指定的地址单元开始连续存放。它们转换成机器码从指定的地址单元开始连续存放。若没有指定地址,但前面用过若没有指定地址,但前面用过 A 命令:从上一个命令:从上一个A命命令的最后一个单元后开始存放。令的最后一个单元后开始存放。若没有指定地址,前面没有用过若没有指定地址,前面没有用过 A 命令:从命令:从CS:0100单元开始连续存放。单元开始连续存放。规则:规则:1、所输入的数字值全为、所输入的数字值全为16进制数,可输入进制数,可输入14个个16进制数。进制数。2、可
11、输入指令和、可输入指令和DB、DW语句。语句。3、可输入指令前缀。、可输入指令前缀。例:-A CS:1001723:0100 MOV AX,291723:0103 MOV BX,851723:0106 ADD AX,BX1723:0108 7、反汇编命令、反汇编命令U将将目标代码还原为汇编格式。目标代码还原为汇编格式。U 地址 或 U 范围 从指定地址开始反汇编从指定地址开始反汇编32个字节。个字节。若没有指定地址且以前未用过若没有指定地址且以前未用过U 命令,命令,CS:0100 处开处开始。始。若没有指定地址且以前用过若没有指定地址且以前用过U 命令:上一个命令:上一个U命令的最命令的最后一条指令的下一个单元处开始。后一条指令的下一个单元处开始。例:-U CS:0 反汇编32个字节 -U CS:0 10 偏移量0-10H的单元 -U CS:0 L 10 前10H个字节的代码