如何编写最简单的汇编语言---顺序结构汇编语言
的有关信息介绍如下:学习汇编语言已经有一段时间,回想起当初想学汇编语言却无从入门,心里就不舒服,今天写一个最简单的汇编程序,希望能帮助初学者入门提供一点经验。
首先明白编译环境:以上4个exe程序必须在32机中运行,若是64位机,请参照dosbox0.74(如何在64位机中使用debug)使用方法。
dosbox0.74具体实现方法:(这个方法目前不怎么完善)
25dosbox怎么用
了解计算机CPU原理:详情请参照“80X86计算机组织”和“80X86的指令系统和寻址方式”
首先有一道题:
求表达式Y=A*X+B-C的值,已知A、B、C分别存放在DA-1、DA-2、DA-3字节单元,它们的值分别是:5 、 6、 7,X存放在INPUT字节单元,结果Y放入JSJ_10字节单元。
分析顺序结构程序代码:由记事本敲出来的
data segment da_1 db 5 da_2 db 6 da_3 db 7 input db 1 jsj_10 db 0data ends ;这一段在内存中定义了一个段,叫做data,并且其中存入了5个变量并且付入初值,db代表每个变量占用1个字节,若是dd则为字,为2个字节code segment ;名字叫做code的段的定义,显然这儿作为代码段,当然code这个名字可以更改 assume cs:code,ds:data ;指定data为DS数据段,code为CS代码段start: mov ax,data ;加法指令 mov ds,ax ;加法指令 mov al,da_1 ;加法指令
mov bl,input ;加法指令
mul bl ;乘法 add al,da_2 sub al,da_3 ;减法 mov jsj_10,al
exit: mov ah,4ch int 21h ;这两行相当于ret(返回值),就像C语言中的return 0;
code ends end start
注释: XXXX segment
.............
XXXX ends ;定义一个段
assume ds:XXXX 把XXXX段指定为ds(ds是段地址寄存器)
请先提前把masm edit debug link文件放入预定的文件夹,并把编写的xxxx.asm代码文件放入该文件夹,asm文件可用记事本写成,并改格式txt为asm(有的看不到文件后缀.txt的请参照百度)
打开cmd,并设置目录进入刚才的文件夹。
现在教如何使用edit编辑我们的asm文件
现在使用masm命令,借助masm.exe宏汇编程序将我们的asm文件翻译成obj二进制代码文件,若是过程中遇到错误,请用edit命令修改asm文件。
以上步骤之后,在文件夹中已经多出了生成的obj文件。此时需要将obj文件连接并生成exe可执行程序
于此,目录中又多出了exe文件。
在接下来这几步中,我们需要使用各种汇编指令进行程序调试。
接下来出现了,一个“-”,键入R查看数据,点击U反汇编,可以查看到将要执行的步骤
接下来便是执行程序,首先设置数据段。通过键入两次T(逐行执行命令)将data segment 设置为数据段。
这里,我们将各个步骤分别讲解
程序调试完毕,在来观察数据段中的值的情况。