汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。
编译程序:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序。
解释程序:对源程序边解释翻译成机器代码边执行的高级语言程序。
高级语言的程序的执行的途径:
1)源程序(高级语言)->编译程序->目标程序(汇编语言)->汇编程序->目标程序(机器语言)->计算结果
2)源程序(高级语言)->编译程序->目标程序(机器语言)->计算结果
3)源程序(高级语言)->解释程序(逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并不产生目标程序)->计算结果
一、汇编语言程序的运行方式有两种,一种是:如果运行结果在屏幕上显示,则可直接执行(EXE文件或COM文件),有时需要在程序中加入两条指令MOV AH,1 INT 21H,作用是使结果在屏幕上停留,直到按任意键为止;另一种是:如果结果在内存或寄存器中,则需要用DEBUG命令-G或-T命令执行后,再用-D显示内存单元的内容或用-R显示寄存器的内容。
二、我用的就是VisualASM编辑器,非常好用。有下列一些汇编工具:
1、MASM(我以前用的,分步的,初学者不易掌握)
2、VISUALASM(我一直在用,感觉比较好,集成环境的,软件下载地址:>
实验 *** 作说明
Keil 软件调试方式分为:软件仿真方式和硬件调试两种。
软件仿真实验上机 *** 作步骤:
1、进入Keil,点击桌面上“Keil μVersion 3”图标,进入Keil系统窗口;
2、新建工程:
1)打开“工程”菜单中的新建,在d出的对话框中,键入自己定义的工程名;
2)在进一步打开的对话框中,选择CPU的类型,为Intel公司的8032AH,确定;
3)存入D:\keil 文件夹中。(在大机房,安装在C盘,改为C:\keil)
3、打开“视图”菜单中的“工程窗口”;
4、在“工程窗口”中,右击“目标1”,为工程设置参数;
1)在d出的快捷菜单中选择“为目标“目标1”设置选项”;
2)在d出的对话框中选择“项目”选项卡,设置时钟为“12Mhz”;
3)选择“调试”选项卡,在单选框选择“软件仿真方式”;
4)确定,即完成了“软件仿真方式”的设置。
5、新建文件
1)打开“文件”菜单,选择“新建”;
2)系统打开一个文本窗口,你可在窗口的编辑区输入要调试的汇编语言源程序;
3)存盘,命名文件名和扩展名,文件名任起,扩展名必须是asm,存入D:\keil 文件夹中(在大机房,安装在C盘,改为C:\keil);例如:aasm。
6、将刚建的新文件添入当前的工程中
1)在“工程窗口”中,“目标1”的+号处打开,显示“源代码组1”;
2)右击“源代码组1”,在快捷菜单中选择“为“源代码组1”添加文件”,d出一个对话框;
3)在对话框中选择“文件类型”为;
4) 选择文件所在路径,同时找到刚键入的aasm文件,点击“add”按钮,然后点击“close”按钮;
5) 在“工程窗口”点击“源代码组1”左侧的+号,显示添加的aasm文件,添加成功。
7、汇编
1)在“工程窗口”点击“源代码组1”的aasm文件;
2)打开“aasm”文件编辑窗口;
3)点击工具按钮中的“重建所有的目标文件”,进行汇编;
4)在“输出窗口”显示汇编是否有错,无错,进入调试;
有错,在编辑窗口修改程序,改后,再次汇编,直至无错后进入调试;
8、调试程序
1)点击“开始/停止调试”按钮,进入调试界面;
2)在程序窗口中有一个黄箭头指向程序的第一条可执行指令的开头;
3)选择调试方式进行调试;
① 在“调试”菜单中选择:跟踪、单步、运行、断点等方式;
② 或按单步或跟踪命令按钮,按一次单步,执行一条指令,pc指针指向下一条要被执
行的指令;
③ 检查运行结果
Ⅰ打开“视图”菜单,选择“存储器窗口”,d出存储器对话框;
Ⅱ在存储器对话框的下方选择memory1在地址栏中键入“C:0X0000”回车,建立程序存储器的观察窗口;
Ⅲ选择memory2在地址栏中键入“D:0X00”回车,建立内部数据存储器的观察窗口;
Ⅳ选择memory3在地址栏中键入“X:0X0000”回车,建立外部数据存储器的观察窗口;
Ⅴ在“project workspace”窗口中观察r0-r7,a,pc,dptr,psw,要观察各个标志位,打开psw左侧的+号;
9、设置PC指针
当程序的首地址不是0000H时,汇编结束后,PC指针仍然指向0000H的地方,在调试程序前,一定要将PC设置到你的程序首地址处,方法为:
1)将光标移到程序的第一条指令处,击鼠标右键;
2)在快捷菜单中选择“Set Program Counter”命令,PC指针即可指向程序的第一条指令。
上次貌似看过这个题,不过仔细一看,这个问题有stack ends,那应该是楼主新开的帖子了。
我对汇编理解一般,还停留在基础上,也不主攻汇编,看楼主问了这么久,就问问不要紧吧
貌似要用data做输入,然后计算完输出到table中
start : mov ax,data
mov ds,ax
mov ax,table
mov es,ax
data给了ds段,
table给了es段,那么为什么
mov ax,es:[bx][5]
mov dx,es:[bx][7]
div word ptr es:[bx+10]
要一直 *** 作es段呢?
你计算完了之后
是把 mov es:[bx+13],ax,也就是说此时es确实是用来放结果的
但是
mov ax,es:[bx][5]
mov dx,es:[bx][7]
也同样都是获取的es段啊?
而且中间也没有过压栈退栈的 *** 作
word ptr es:[bx+10]先放到别的寄存器里不行么?
db 10 dup (0) 够用么?
希望能帮助楼主你
汇编后的程序是exe的,你在“开始”-“运行”-“cmd”打开命令提示符。把你的程序复制到c根目录下。让提示符也转到c根目录下,直接输入程序名字就行了。或者先在“edit”编辑一个源程序后再“link”源程序,最后是调试“debug”+程序名exe。就能运行。但是汇编程序可移植性差需要反复修改。祝你好运!
下载MASM这个软件,把写好的汇编存成ASM的文本文件,例如:1ASM,然后在DOS命令下,找到这个文件的位置,输入如下内容:
MASM 1;
LINK 1;
即可生成 1EXE
注意要把MASM这个软件和1ASM放在同一个位置
以上就是关于什么是汇编程序,编译程序,解释程序它们的功能是什么全部的内容,包括:什么是汇编程序,编译程序,解释程序它们的功能是什么、汇编程序在哪里编辑,运行时候哪里看结果、简述上机运行汇编语言程序的过程。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)