在Win10下利用vscode调试32位、16位汇编方法(masm-code + debugger)
这学期学汇编,老师推荐的工具是Masm for Windows。不过这软件又丑又老有些功能还要钱。一直在找改进方法,各种古老的ide也试过,xp虚拟机也试过,都不尽人意。偶然看到有人推荐vscode的masm-code插件,可以一键编译运行汇编程序,用起来确实可以,但是用的dosbox比较老,看不了32位寄存器。后来发现可以把它和一个叫做debugger的工具整合起来直接调试32位汇编程序,用起来就很舒服了。
安装方法:
1)vscode下载安装
2)masm-code插件安装。
2)下载debugger程序代替原插件中的dosbox。
debugger下载地址
debugger的好处在于能直接看32位寄存器,还能在同一个视图同时看代码段和数据段和寄存器值。
下载完debugger后,解压文件,放在一旁备用。
在masm-code插件安装完成后,如下文件夹中是masm-code插件的内容。
C:/Users/[用户名]/AppData/Roaming/Code/User/globalStorage/kaixa.masm-code/
该文件夹中原本的dosbox.exe是较老的工具,我们需要用下好的debugger代替它。
1)将插件文件夹中原来的dosbox.exe名字改成dosbox.exe.bak做个备份
2)将debugger复制到插件文件夹中并把名字改成dosbox.exe
安装完成。
在vscode中,写完asm文件后,按下ctrl+shift+p就能选择一键编译生成可执行程序并执行它。
可执行文件生成后,在dosbox中可以输入命令:debug 可执行文件名用debugger进行调试。
这是调试的方法:debugger操作手册 ,这个页面往下滑,有些debugger的一些操作。
因为我就是应付课程,写点小程序而已,没用到下断点之类的高级功能,用得多的几个操作如下:
F5: 程序直接运行到结束
F10或F11: 执行下一条指令(F11和F10好像有点区别,但一下子没想起来(不重要(lll¬ω¬)))
alt+d: Data Overview窗口根据当前ds值将视图移动到数据段
alt+s: Data Overview窗口根据当前ss值将试图移动到栈
后记
帮几个同学搞的时候,安装masm-code插件有问题:vscode中显示插件安装完成了,但是实际上东西没下下来,表现出来的症状是按ctrl+shift+p后无法启动启动dosbox。原因在于没有成功下载插件,以下文件夹的内容为空。
C:/Users/[用户名]/AppData/Roaming/Code/User/globalStorage/kaixa.masm-code/
解决办法:。。没啥方法,多试几次,实在不行扶墙弄
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' |
‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" |
“Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash |
– is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.