zoukankan      html  css  js  c++  java
  • dosbox+masm5.0编译汇编文件

    在去年写过如何bc3.1编译ucos,不过现在很少去用到,但是那是用dosbox也是懵懵懂懂的,参见https://blog.csdn.net/liming0931/article/details/82320088

    随着c语言使用的不断熟悉,偶尔看到一篇pdf,是姚新颜写的《c语言的标准和实现》,里面有提到如果要深入学习c语言,要懂点x86的汇编,之前我增加学过51的汇编,多多少少有点理解,就是x86的很多寄存器和51的不一样,自然界联想到了王爽的《汇编语言》第三版,那么学习之前要有汇编的编译环境,网上有虚拟机+dos的方案,但是我用过dosbox,那么不用费尽安装虚拟机,因为我的老电脑已经带不动了,但是dosbox肯定没问题的,所以就使用了这个方案。

    网上下载的masm5.0和debug.exe,dosbox下载最新版,和之前不会冲突,这样我之前的配置文件依然有效,会有两个conf文件,这样我0.74.3用学习汇编,0.74.2学习ucos,互不干扰。

    在C:UsersAdministratorAppDataLocalDOSBox下会有dosbox-0.74-3.conf文件。很不错哦~~

    末尾添加如下:

    [autoexec]
    # Lines in this section will be run at startup.
    # You can put your MOUNT lines here.
    mount c d:masm5.0
    set PATH=%PATH;
    c:

    这样就把我的编译器加载进来了。

    实例:

    参考https://www.cnblogs.com/liuzeyu12a/p/10285384.html

    https://www.cnblogs.com/lihaiyan/p/4274475.html

    https://blog.csdn.net/zdwzzu2006/article/details/3990152?locationNum=11&fps=1

    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
    

      保存hello.asm

    1、开启dosbox:

     2、编译asm文件

    这样会生成hello.obj文件。后面两个是不会生成的。 

    3、link链接 obj文件

     同样,后面两个文件不生成,最后生成了hello.exe。

    执行后就打印了字符串的信息。

    汇编的语法还需要继续学习,尤其是指针的操作

    lea是“load effective address”的缩写,简单的说,lea指令可以用来将一个内存地址直接赋给目的操作数,例如:
    lea eax,[ebx+8]就是将ebx+8这个值直接赋给eax,而不是把ebx+8处的内存地址里的数据赋给eax。

    而mov指令则恰恰相反,例如:
    mov eax,[ebx+8]则是把内存地址为ebx+8处的数据赋给eax。


  • 相关阅读:
    51nod1370 排列与操作
    2019-11-20-Github-给仓库上传-NuGet-库
    2019-11-20-Github-给仓库上传-NuGet-库
    2019-6-5-WPF-隐藏系统窗口菜单
    2019-6-5-WPF-隐藏系统窗口菜单
    2019-8-31-AutoHotKey-用打码的快捷键
    2019-8-31-AutoHotKey-用打码的快捷键
    2019-4-10-win10-uwp-自定义标记扩展
    2019-4-10-win10-uwp-自定义标记扩展
    2018-9-3-C#-const-和-readonly-有什么区别
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/11742304.html
Copyright © 2011-2022 走看看