初级汇编程序(一)

来源:互联网 发布:iphone视频拼接软件 编辑:程序博客网 时间:2024/05/14 09:32

随着计算机组成原理课程的学习,我对汇编也有了初步的认识,接下来就简单看几个汇编程序吧。

由于edit/debug等命令只适应32位机器,但笔者是64位的win7系统,于是得先下载一个DOSBox,能模拟DOS环境。

1.下载DOSBox,百度即可
2.打开之后,会有两个窗口,先输入命令
mount e e:\DOSBox表示将你的驱动盘模拟到E盘,e:\dosbox表示你的文件目录
3.e:表示将根目录换到E盘
4.masm ex.asm 编译你的.asm文件,期间一直回车即可
5.link ex.obj 连接你的.obj文件,期间一直回车即可
6.debug ex.exe 接下来就可以使用DOS命令来调试程序了
(这些命令分别需要masm.exe,link.exe,debug.exe文件)

一、顺序结构

内存中自TABLE开始的七个单元中连续存放着自然数0~6的立方值(立方值表),任一个数X(0≤X≤6)在FIRST单元中,要求查表找出X的立方值,存SECOND单元。

源代码

效果:
这里写图片描述
这里写图片描述

命令:-u:反汇编 -t:单步执行 -d ds:0:查看数据段数据,从0000开始 -g 0014:执行到0014,图中语句为MOV AH,4C

执行结果的数据显示:(TABLE)00 01 08 1B 40 7D D8 (FIRST)05 (SECOND)7D
表示05的立方值为7D,而这个7D则是从TABLE中查找出来的。

这段程序中,TABLE的定义是DB,表示字节,若要用DW(字)定义呢?

这里写图片描述

需要多一步SAL AL,1 表示将AL的内容左移一位,相当于乘2,而汇编中的移位操作要比加法、乘法的速度快很多,效率也大很多。

这里写图片描述

读者可以发现TABLE的存储方式发生了变化,但FIRST和SECOND的内容还是05和7D

0 0