zoukankan      html  css  js  c++  java
  • 如何用MASM5.0 (图解)

    预先在E:masm5.0MYDOC目录下写好hello.asm文件:

    DATA SEGMENT
        BUF DB 'HELLO WORLD!  THIS IS MY FIRST ASM FILE! $'
    DATA ENDS
    CODE SEGMENT
        ASSUME CS:CODE,DS:DATA
    START:   MOV AX,DATA
        MOV DS,AX
        LEA DX,BUF
        MOV AH,09
        INT 21H
        MOV AH,4CH
        INT 21H
    CODE ENDS
    END START

    首先,进入masm5.0所在路径(装入-连接-运行-调试均在masm5.0所在目录中进行)

    (我这里masm5.0所在路径是E:masm5.0)

    Winkey+R — cmd —e:——cd masm5.0

    图片

    1、装入

    格式:masm  asm源文件及路径1   obj文件目标路径2(省去则默认当前路径)

    如:E:masm5.0>masm .MYDOChello.asm .MYDOC


    图片

    结果:程序无错则在E:masm5.0MYDOC中增加文件HELLO.OBJ

    图片

    2、连接

    格式:link  obj文件路径1

    如:E:masm5.0>LINK .MYDOCHELLO.OBJ

    图片

    (此后当前目录就会出现HELLO.EXE)

     图片

    3、运行

    格式:exe文件全名(即 "HELLO.EXE")

    如:E:masm5.0>  HELLO.EXE

     图片

    4、调试

    -u 反汇编

    -r 显示寄存器内容

    -g [=address1][address2][address3]  执行到断点行,如:-g 12 为执行到第12行

    -t [=address][value] 跟踪,配合-g使用 如:-t 12 1 为从第12行开始,每执行1条指令后停下来

    -d 查看数据

    -q 退出返回操作系统

    图片

    上图中,

    首先,-u 反汇编整个 hello.exe ;

    然后-g 9 ,让程序执行到 第9行停下来;再用-t 跟踪,每执行一条指令停下来;

    最后,连续-t跟踪了3次后输入-q退出程序。

    汇编masm5.0编译器编译汇编文件名时,
    有时可能出现 Unable to open input file:bcd2ascii.asm 的错误,可是代码文件确实存在。
    这时,可以考虑两个问题,
    第一:文件拓展名有没有改过来,因为win7下会自动隐藏拓展名(除非设置过);
    第二:是文件的名字系统的差别造成的,windows现在可以支持非常复杂的命名,
            在cmd下也可以看到这些命名,但当执行debug,masm等程序时,系统将启动ntvdm,
            这是一个nt系统下的vdm,虚拟设备管理,就是一个16位的虚拟机,
            此时,ntvdm下的cmd严格执行8.3命名,这时只需要修改文件名,
            主文件名8个字符以内,扩展名为asm就可以了

  • 相关阅读:
    能力与知识、技能三者之间的区别与联系(技能与知识最大的差别是,技能是以熟练不熟练为判断的,才干是自动自发的能力,仅有知识而缺乏技能所谓“高分低能”)
    薪酬是由其商业价值与企业需求的匹配程度决定(别人的难题,就是你的价值)
    SpringMVC类型转换、数据绑定
    jQuery easyuI datagrid
    流程控制
    微信接口后台开发与配置
    WCF的简单
    .Net集成PayPal的Demo
    WCF服务最近经常死掉
    扩展方法、链式编程
  • 原文地址:https://www.cnblogs.com/lihaiyan/p/4274475.html
Copyright © 2011-2022 走看看