WIN10下运行汇编语言编写的Hello World

对着背影说爱祢 提交于 2019-12-20 13:48:03

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

 我们在这里需要DOSBox软件,这里提供MASM和DOSBox下载链接:
        MASM:https://pan.baidu.com/s/1T-UAPk57iNL-NtvSj-IShA 提取码g3y1
        DOSBox:https://pan.baidu.com/s/1wxr9HN51jFqEtYaUcZFIdA 提取码g2fx
        下载好了第一个文件会看到里面有debug.exe,LINK.EXE,MASM.EXE三个程序,我们需要把它们和我们写好的hello.asm(用txt创建后改名为hello.asm)文件放在一个文件夹下面,假设这里放在了D盘的MASM文件夹下。

assume cs:code,ds:datas  

datas segment  
str db 'helloWorld!','$'    
datas ends  
  
code segment  
    mov ax,datas  
    mov ds,ax  
    lea dx,str  ; 获取str的偏移地址  
    mov ah,9 ; 调用9号功能输出字符串  
    int 21h  
  
    mov ah,4ch  
    int 21h  
code ends  
end

下载好第二个文件发现里面有DOSBox…的程序,点击正常安装完就好。安装完成后打开桌面上的DOSBox0.74

在这里插入图片描述

我们来到红色圈圈包起来的路径下C:\Users\hp\AppData\Local\DOSBox

用文本编辑器打开这个dos-box-0.74.conf,在最后面加入

mount c: d:\MASM

c:

然后重新打开桌面上的DOSBox
输入debug 然后输入r 发现可以正常使用debug

在这里插入图片描述

输入masm hello.asm

  • Object fileName: 目标文件的路径与名称,默认直接enter

剩下source listening(列表文件)和Cross-reference(交叉引用文件)是从源文件编译为目标文件过程中产生的中间结果,可以直接enter不生成。

再输入link hello.obj发现可以正常编译链接

 

  • Run File: 可执行文件,连接后生成的exe文件,默认enter
  • List File: 映像文件,是连接过程中将目标文件连接为可执行文件过程中产生的中间文件,同样地,直接enter忽略
  • Libraries: 库文件,如果一个程序调用了某一个库的子程序,就需要在连接的时候,将这个库文件与目标文件连接在一起,生成可执行文件,但是我准备的这段程序没有调用任何子程序,所以直接enter忽略。
  •  

此时执行hello

即可看到 helloWorld!

连接结束后输出的最后一行Link: warning L4021: no stack sement, 没有栈段,可以不用理会。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!