Let's get our hands wet now! 先来感性的认识一下汇编,以及怎么用汇编语言写程序。
1.asm
assume cs:code
code segment
mov ax,2
mov cx,11
s:add ax,ax
loop s
mov ax,4c00h
int 21h
code ends
end
这个程序的功能是计算2的12次方
之后我们可以用 masm.exe 这个汇编编译器来编译我们的源文件,生成一个1.obj。再用 link.exe 连接器链接,最后生成1.exe。这里说明一下代码。
定义段
段名 segment
...
段名 ends
segment 和 ends 成对使用。用来定义一个段,一个可被编译的汇编源码必须包含一个段。
asume
asume cs:段名
这条指令假设某一段寄存器和程序中某一个用 segment...ends 定义的段相关联。通过 assume 说明这种关联。 assume 并不是一条非要深入理解不可的伪指令,以后我们记着用 assume 将有特殊用途的段和相关的段寄存器关联起来即可。
一个程序运行后,要将cpu控制权交给之前使得它运行的程序。这个过程叫做:程序返回。如何返回?就是最后那两条指令mov ax,4c00h
和int 21h
。目前阶段我们只要知道这两条指令能实现返回功能就好。(其实我也不知道)
loop
cx 寄存器与 loop 结合使用。
loop的使用框架
mov cx,循环次数
s:循环执行的程序段
loop s
很像goto
命令的感觉对吧!
除非注明,嗯VIEW文章均为原创,转载请以链接形式标明本文地址
本文地址:https://www.umview.com/assembly-language-1
厉害了word哥,,,,汇编