跟我一起学编程系列课程: 第一篇汇编语言 16位汇编
第二部分基础知识 第一节 16位汇编语言学习环境
16位汇编语言学习环境搭建 1、汇编语言程序设计编程调试过程 第一步编写源程序 第二步汇编源程序 第三步;连接目标程序 第四步:调试可执行程序 举例说明:汇编程序HELLO.ASM
16位汇编语言学习环境搭建 2、DOSBOX虚拟机安装
16位汇编语言学习环境搭建 3、文本编辑工具:Notepad++
16位汇编语言学习环境搭建 4、MASM命令的使用 MASM [/options] [source(.asm)],[out(.obj)],[list(.lst)],[cref(.crf)] [;] 可选的命令动作选项由符号“/”引导。利用命令“MASM /HELP”可获得有关命令动作选项及其说明信息。 source(.asm)指定源程序,缺省扩展名为ASM out(.obj)指定输出的目标代码文件。缺省的文件名同源文件名,缺省的扩展名为OBJ list(.lst)指定输出的列表文件,缺省扩展名是LST。缺省情况下不生成列表文件。 cref(.crf)指定输出的交叉参考文件,缺省的扩展名是CRF。缺省情况是不生成交叉参考文件。 命令行最后的[;]表示其后的缺省项,按缺省处理。 C>MASM HELLO
16位汇编语言学习环境搭建 5、LINK 命令的使用 LINK [/options] [source(.obj)...],[out(.exe)],[mapfile(.map)],[library(.lib)...] [;] 可选的命令动作选项由符号“/”引导。利用命令“LINK /HELP”可获得有关命令动作选项及其说明信息。 source(.obj)指定目标代码文件,缺省扩展名为OBJ。可以有多个目标程序代码文件,文件标识间用加号间隔或者用空格间隔。 out(.exe)指定输出的可执行文件。缺省的文件名同第一个目标代码模块的文件名,缺省的扩展名为EXE. mapfile(.map)指定输出的定位图文件,缺省扩展名是MAP。缺省情况下不生成定位图文件。 library(.lib)指定连接时使用的库文件,缺省的扩展名是LIB。可以有多个库,库文件标识间加号间隔或者使用空格间隔。缺省情况下不使用库。 命令行最后的[;]表示其后的缺省项,按缺省设置处理。 C>LINK HELLO; C>LINK TEST1+TEST2,TEST; TEST1和TEST2连接,生成的可执行程序存放在TEST.EXE中 C>LINK ABC,DEF 把目标代码模块ABC.OBJ与库DEF.LIB内的函数(过程)连接,生成的可执行程序文件存放在ABC.EXE中。 C>LINK TEST1 TEST2,ABC,GHI,DEF 把主目标模块TEST1.OBJ和TEST2.OBJ与库DEF.LIB内的函数(过程)连接,生成的可执行程序文件存放在ABC.EXE中,生成定位图文件GHI.MAP
16位汇编语言学习环境搭建 6、debug.exe调试工具使用 启动DEBUG debug [文件标识符[参数表]] C>debug C>debug HELLO.EXE 退出DEBUG DEBUG提示符:-Q 常用命令: r命令:查看或者改变CPU寄存器的内容。 查看寄存器:r 改变某个寄存器内容:r 寄存器(如:ax),之后按下Enter出现“:”,再输入值
16位汇编语言学习环境搭建 debug常见的使用命令 d命令:查看某段内存内容 注意:直接使用d命令,显示的是debug预设地址处的内容
16位汇编语言学习环境搭建 e命令:改变内存内容 改变内存内容:e 段地址:偏移地址 写入的数据 u命令:将机器指令翻译成汇编指令 机器指令翻译成汇编指令:u 段地址:偏移地址 注意:如果直接使用命令u,debug将会把CPU中CS:IP指向的内存内容翻译成汇编指令
16位汇编语言学习环境搭建 t命令:cpu执行一条机器指令(CS:IP指向的指令) a命令:以汇编指令的格式在内存中写入机器指令 写入汇编指令:a 段地址:偏移地址,按下enter键后,输入汇编指令,当不想输入时直接按enter退出输入
说明 1.DEBUG接受和显示的数都是16进制数 2.命令都是一个字母,命令参数随命令而异 3.命令和参数可以用大写或小写字母或混合大写方式输入 4.命令和参数间,可以用定界符(空格、制表符,逗号等)。但是定界符只是两个相邻的16进制数之间是必需的。如下面的命令是等效的: DCS:100 110 D CS:100, 110 D, CS:100, 110 5.在提示符出现时,可键入DEBUG命令,只有在回车键后,命令才开始执行。 6.若DEBUG检查出一个命令错误,提示符为“^ Error” 7.在输入DEBUG命令时,可以用常用的编辑键 8.可以用Ctrl+Break键或Ctrl+C键来打断一个命令的执行,返回DEBUG提示符 9.若一个命令产生相当多的输出行时,为了能看清屏幕上的显示内容,可按Ctrl+S键,暂停显示
说明 参数说明 1.地址,地址参数有段值和偏移两部分组成。段值可以用一个段寄存器表示,也可以用4位16进制数表示,偏移用4位16进制数表示。 2.端口地址使用于输入输出命令,端口地址是一个两位16进制数 3.范围,用于指定内存区域(缓冲区),两种方式表示:一起时地址和结束地址。二起时地址和长度表示。长度必须L字母引导。范围最大为64K,即0~0FFFFH 4.数值,数值参数一般表示命令重复的次数,最多可以是4位16进制数。 5.字节值,字节值参数表示输出到端口的值,最多可以是2位16进制数。 6.字节值表参数表示要替换或查找的若干个以字节为单位的值。各值间由空格等间隔符分隔。字节值表可以含字符串,字符串必须用引号括起来。 7.驱动器号参数表示要读写扇区所在的驱动器。0代表A驱动器,1代表B驱动器,2代表C驱动器,3代表D驱动器。 8.扇区号表示DOS逻辑扇区号,最多可以是3位16进制数。
本节视频的课后练习 网上查阅16位汇编学习环境工具软件的使用教程,编程达人官网-资料下载版块下载安装环境,自己动手,熟练安装、使用,掌握其用法。 课后练习请务必完成后,再继续学习后面的课程。官网视频播放页面有参考答案。
0512-57882866 www.bcdaren.com 昆山爱达人 1250121864 昆山爱达人信息技术有限公司 视频录制:编程达人 视频提供 视频录制:编程达人 联系电话: 0512-57882866 官网地址: www.bcdaren.com 联系公众号: 昆山爱达人 联系QQ: 1250121864 编程达人APP: