另外一点,你身为编程小白都可以使用汇编编程了?虽然汇编很基础,但难度是很高的,真正使用汇编开发的人,一般都是大牛,且开发用的地方都很关键,比如boot引导之类的,或者对代码运行效率极高的场合才会使用汇编,否则一般的都会使用更高级的语言。
1.先用汇编工具如masm对源文件汇编,链接,生成.exe文件masm 下载地址:http://dl1.csdn.net/down3/20070416/16194756234.rar
例如,假设汇编工具在d:\masm,源文件名为1.asm,也在该目录下,可以如下 *** 作:
开始--运行--cmd--d: --cd masm--masm 1--回车3下--link 1--回车3下
此时在d:\masm下生成1.obj,1.exe
在命令行(cmd)下输入debug 1.exe开始调试。
2.在开始调试之前先介绍一下debug的常用命令
-A 地址 从指定地址开始编写小汇编程序,按两个回车键结束编辑
-U 地址 从指定地址开始反汇编32字节的机器指令,缺省地址则从上一U命令继续
-D 始址 终址 以16进制/Asc字符对照方式显示指定内存范围的数据,每行显示10H个字节
-E 地址 值表 用给出的值表(空格分隔)替换指定地址开始的内存单元,例:-E 100 'v' 1F 'hello'
-N 文件名 为后续的L/W命令约定所 *** 作的文件名
-L 地址 将N命令所指定文件的内容读入到指定内存位置。另,逻辑卷扇区直接读:-L 地址 逻卷号 起始逻扇号 扇数
-W 地址 将BX-CX个字节的内存数据写入N命令指定的文件中。另,逻辑卷扇区直接写:-W 地址 逻卷号 起始逻扇号 扇数
-R 寄存器名 显示并允许修改指定寄存器的值
-G=始址 终址 执行指定内存中的机器指令程序
-T=地址 单步执行机器指令,缺省地址则从上一T命令继续。另,继续跟踪m条指令:-T m
读取c:卷的引导扇区,并保存到Boot.1文件中,并简单分析引导程序的前面几条指令:
-L 1000 2 0 1
-N boot.1
-R bx输入0000
-R cx输入0200
-W 1000
-U 1000
读取第一个硬盘上的主引导扇区,并保存到MB.1文件中,在屏幕上显示硬盘分区表数据:
-A 100
yyyy:0100 mov dx,0080
yyyy:01xx mov cx,0001
yyyy:01xx mov ax,yyyy
yyyy:01xx mov es,ax
yyyy:01xx mov bx,1000
yyyy:01xx mov ax,0201
yyyy:01xx int 13
yyyy:01zz nop
-G=yyyy:0100 01zz
-N mb.1
-R bx 输入0000
-R cx 输入0200
-W 1000
-D 11be 11ff
给你个前辈的博客地址:http://blog.csdn.net/liumang_D/article/details/3899462
具体请再问,,,
不对!
AX寄存器是16位的,EAX才是32位的,不能这样传!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)