1.如何在 win10 64 位下完美配置搭建汇编环境
masm6或者masm5 下载。
dosbox 下载安装 为何要用这个呢,因为 机子是64位的,dosbox 模拟32位的用来执行生成的exe文件masm 安装好后,有个bin文件;个人建议将其设置环境变量。那么命令 ml masm link 这三个命令就随时可用了,免得到处复制编写asm文件,使用ml命令一步到位生成exe 或者masm命令生成obj再用link命令生成exe 注意这三个命令是在win1064位自带的cmd上运行的生成的exe文件怎么执行呢?显然在win10 64位下,直接点击或在cmd上输入命令都是不可的因此用到dosbox 打开dosbox 使用mount命令 挂载到该路径,如mount c d:\mm 即将dosbox的盘符c 挂载到了 真实硬盘d下的mm文件夹在dosbox 中进入c: 则进入了d:\mm 进入exe文件所在目录 输入exe 文件名即可运行该exe程序。
2.汇编语言如何去操作?
事实上,在实模式中,内存比保护模式中的结构更令人困惑。
内存被分割成段,并且,操作内存时,需要指定段和偏移量。不过,理解这些概念是非常容易的事情。
请看下面的图: 段-寄存器这种格局是早期硬件电路限制留下的一个伤疤。地址总线在当时有20-bit。
然而20-bit的地址不能放到16-bit的寄存器里,这意味着有4-bit必须放到别的地方。因此,为了访问所有的内存,必须使用两个16-bit寄存器。
这一设计上的折衷方案导致了今天的段-偏移量格局。最初的设计中,其中一个寄存器只有4-bit有效,然而为了简化程序,两个寄存器都是16-bit有效,并在执行时求出加权和来标识20-bit地址。
偏移量是16-bit的,因此,一个段是64KB。下面的图可以帮助你理解20-bit地址是如何形成的: 段-偏移量标识的地址通常记做 段:偏移量 的形式。
由于这样的结构,一个内存有多个对应的地址。例如,0000:0010和0001:0000指的是同一内存地址。
又如, 0000:1234 = 0123:0004 = 0120:0034 = 0100:0234 0001:1234 = 0124:0004 = 0120:0044 = 0100:0244 作为负面影响之一,在段上加1相当于在偏移量上加16,而不是一个“全新”的段。 反之,在偏移量上加16也和在段上加1等价。
某些时候,据此认为段的“粒度”是16字节。 练习题 尝试一下将下面的地址转化为20bit的地址: 2EA8:D678 26CF:8D5F 453A:CFAD 2933:31A6 5924:DCCF。
3.Linux下如何使用MASM编写汇编程序呢?
目前多数学校的微机原理课程使用的是MASM汇编器,而Linux中的汇编工具是nasm 。
二者之间的语法有不少差别,不能通用。 安装dosbox 或dosemu 之后都可以在Linux中使用MASM和Debug,而且由于是在Dosbox及dosemu的虚拟机中运行,安全性也较高。
安装 你可以选择安装dosbox或dosemu,也可以选择二者都安装。 Dosbox的网站为 / ,多数发行版的软件仓库中都配有这一软件,比如Debian /Ubuntu 中的安装方法为: $ sudo apt-get install dosbox Dosemu的网站为 /showdown。
asp?id=171 你需要找一个DOS中的masm软件,在DOS中工作的最好是5。 0版本,上面的链接中就有。
配置DOS虚拟机 分别介绍Dosbox和dosemu的配置方法: dosbox 把上面的工具放到一个文件夹中,如~/learnASM/tools/ ,在~/learnASM 中创建一个Shell脚本: $ cd ~/learnASM $ echo "dosbox -c 'mount c: 。 /' -c 'path %path%;c:\tools'" > runDosbox。
sh $ chmod +x runDosbox。sh 现在就可以用'。
/runDosbox。sh'启动dosbox了: $ 。
/runDosbox。sh dosemu dosemu的配置方法很简单 ,由于默认dosemu中的D盘就是用户的根目录,只要把masm放在好找的地方就可以了。
也可以修改~/。dosemu/drive_c/autoexec。
bat (需要root权限)把masm的路径加到PATH里。 提示: 如果只是进行汇编操作,还可以运行dosemu -dumb ,dosemu会在当前shell中运行。
如果要全屏运行dosemu,推荐在/etc/dosemu/dosemu。 conf 中加入 $_X_font="vga8x19" ,以使全屏时的字体正常。
提示: 退出dosemu的命令是exitemu 使用注意事项 可以使用VI等编辑器在系统中编辑源码,然后在Dosbox界面用Ctrl-F4 刷新目录。 为了在vim 中正常高亮显示汇编源码,可以创建/etc/vim/filetype。
vim ,并加入如下内容: augroup filetypedetect au BufNewFile,BufRead *。asm setf masm augroup END 这样后缀为。
asm 的文件就可以正常高亮了。
4.如何在win10 64位下搭载汇编环境
只需要将Windows Module Installer启动就可以了。启动方式为(win7):我的电脑右击——管理——服务和应用程序——服务——Windows Module Installer——右击启动。
若出现资源不够的提示(没有出现则跳过本段),那是因为以前安装某些软件限制了注册表的大小。解决办法是在开始窗口输入regedit进入注册表。找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control。注意在选中Control的情况下,在右边选择RegistrySizeLimit(REG_DWORD类型) ,将其的值改为 FFFFFFFF (10进制就是 4294967295)重新启动计算机后启动Windows Module Installer。
5.如何在Win10环境下使用Debug进行汇编调试
目前在win10系统中是没有debug.exe的,所以我们需要下载一个debug.exe用来使用,32位的也可以。
1.首先将下载好的debug.exe放在一个文件夹下,我是放在了D:\debug\debug.exe这里;
2.接着我们打开dosbox,并输入如下命令:
接下来输入D:\切换到D盘,输入如下命令:
至此,便可以在win10环境下正常运行debug程序了。
转载请注明出处windows之家 » win10如何编写汇编程序