【汇编语言】个人在读完王爽的汇编后的一点阶段性总结

x86汇编上手的第一反应就是古老,但是给人的体验却实在新奇。

与高级语言的区别

首先是你无法声明变量,只能用寄存器,内存(也许还有硬盘,不过涉及IO交互的地方我没有实践过)来实现一个个变量的作用,一写个四五十行的代码寄存器的数量就会显得捉襟见肘。一共就8个16位的寄存器,其中四个再拆分为8个8位寄存器。而且有些寄存器是有特定用途的,譬如AX和DX经常就一起处理一些乘除操作,CX要当做循环计数器,SP要指向栈底。剩下的BX,SI,DI,BP有时也因为要作为子程序的传入参数而不能动。

而且指令也很严格,比如内存不能直接到段寄存器,访问内存只能用BX,SI,DI和BP(BP只是默认访问栈,加上段指示器还是可以访问DS的)

空间要一开始就申请并分配,而且是自己动手做栈和数据段的初始化和指向。

这些都是一开始要适应的点

好玩的地方

直接访问显存来输出字符串的方式就很好玩,IO设备交互的扫描码之类的引用也很好玩,内外中断的新程序写入也很有意思。

收获

对于底层的实现有了一点点小小的理解,比如高级语言里直接用寄存器储存参数而不用传入参数(没什么用),比如不用main函数怎么实现编译(没什么用)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值