微机原理刚学汇编 写汇编程序时毫无头绪 比如不知道怎么样开头 像c语言之类的都有固定头文件啥的 汇

2025-04-06 18:18:30
推荐回答(1个)
回答1:

建议如下:

  1. 工欲善其事,必先利其器,软件先安好。现在学习的汇编一般都是16位的,而PC一般都是是x86或者x64,16位的程序是没法直接运行的,所以需要安装虚拟的运行环境,推荐使用DOSBox,用来运行你编写的汇编代码编译后生成的16位exe的程序。当然代码编辑器的话,推荐用Notepad++。顺便说一下,DOSBox安装之后还需要一些配置,还要添加masm.exe,link.exe等程序,配置难度适中,如果不会配置,请给我发私信(因为联系方式此处不便透露)。

  2. 汇编代码其实不难,关键是入门时,也要遵循一定的语法,这里是一个hello world的例子(运行是可以的,不用怀疑):

  3. data segment
        str_1 db 'hello world!','$'  ;定义一个字符串,以$结束
    data ends
    code segment
        main proc far
        assume cs:code,ds:data
    start:push ds
        sub ax,ax  ;相当于 mov ax,0h
        push ax
        
        mov ax,data
        mov ds,ax
        
        lea dx,str_1
        mov ah,9h
        int 21h
        
        ret
        main endp
    code ends
        end start
  4. 对于这段代码,没有堆栈段(因为用不上),编译会警告没有堆栈段,但是不影响。这段代码算是一个典型的汇编代码的例子了吧,汇编代码的结构差不多就这样,多是先要有数据段,代码段等的定义,然后是assume将数据段与ds,堆栈段与ss......挂钩(一一对应上),然后是代码段的具体内容,开始主入口地址保护,然后程序的核心,最后返回主程序。这算是简单的一个了,当然还有比这一个复杂一点的,比如加减法运算,涉及到段间跳转的,其他的复杂例子讲解,请私信。