汇编学习总结一(10.27)
今天,学习了网上的汇编视频教程,非常好,有可能据王爽本人,据说他的《汇编语言》是很经典的数据,之所以学习是想了解一下计算机底层是怎么运行的,倒不是说要拿汇编来做嵌入式,因为现在的编译器已经比我们强多了。
学习汇编的念头是前几天看了《c语言标准和实现》的附录里面提到汇编的只知识,所以还是学习一下,帮助自己家人计算机内功,网上也有说csapp的第三章就是讲述汇编语言的,到时候可以拿来看看。
手头上基本都是win10系统,64位,而汇编教程基本上都是32位,而且是不兼容的,只能使用虚拟机或dosbox来模拟x86平台,因此自己之前用过dosbox,就沿用了这个工具。
这个工具很好下载,官网即刻,安装也简单。
汇编工具,主要是masm,这个是微软自己的,nasm是开源汇编工具。可以在linux和Windows下运行,目前知乎上有nasm的教程,主要是讲述和c语言的关联,在linux下学习。而视频教程中比例比例上,是masm+debug。
学习怎么编译。
1、dsosbox自动mount,可以配置后实现这个功能。
2、进入系统,将asm文件放入masm同目录下。
3、masm xx.asm
4、link xx.obj
5、xx.exe回车即可运行
debug的使用
-u查看机器码
-r查看寄存器数值
-a写汇编指令
-t执行
目前学到了三种总线:地址总线,控制总线,数据总线
鼠标键盘通过端口port和cpu通信,使用input out
内存空间:包括显存、内存
写数据其实就是往寄存器写数据,进而控制cpu,从而由cpu控制显示,数据计算等
寄存器为了兼容以前的程序指令,ax等都是16位,ax=AH+A,计算的时候,数据宽度要一直,否则会出错。
masm的版本使用5.0即可,反正用dosbox模拟的。