建议如下:
工欲善其事,必先利其器,软件先安好。现在学习的汇编一般都是16位的,而PC一般都是是x86或者x64,16位的程序是没法直接运行的,所以需要安装虚拟的运行环境,推荐使用DOSBox,用来运行你编写的汇编代码编译后生成的16位exe的程序。当然代码编辑器的话,推荐用Notepad++。顺便说一下,DOSBox安装之后还需要一些配置,还要添加masm.exe,link.exe等程序,配置难度适中,如果不会配置,请给我发私信(因为联系方式此处不便透露)。
汇编代码其实不难,关键是入门时,也要遵循一定的语法,这里是一个hello world的例子(运行是可以的,不用怀疑):
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
对于这段代码,没有堆栈段(因为用不上),编译会警告没有堆栈段,但是不影响。这段代码算是一个典型的汇编代码的例子了吧,汇编代码的结构差不多就这样,多是先要有数据段,代码段等的定义,然后是assume将数据段与ds,堆栈段与ss......挂钩(一一对应上),然后是代码段的具体内容,开始主入口地址保护,然后程序的核心,最后返回主程序。这算是简单的一个了,当然还有比这一个复杂一点的,比如加减法运算,涉及到段间跳转的,其他的复杂例子讲解,请私信。