32位汇编语言helloworld_汇编语言学习心得

我们读到的汇编程序文本包含两种内容:

①跟机器码一一对应的汇编指令,比如mov,jmp,jne等,也包含中断调用int 21H之类

伪指令和运算符,比如db string "I am a student",和“+”,“-”符号,这些由汇编语言的编译器生成某种运行环境(一般是os)能够识别的信息,然后存储到磁盘上,伪指令在os加载编译生成的汇编程序时,在内存中一次性完成构筑,形成(可以单步调试的)汇编指令所运行的环境。运算符没太大意义(目前的理解)

这个过程可以比喻为烹饪。

汇编指令是做菜的动作,比如“切”,“点火”,“加入(食材或调味料)”,数据是食材。而CPU是炊具(炉或刀具、锅),磁盘上的汇编程序可看做菜谱,菜谱上包含动作和食材,分别是汇编指令和数据,我们翻看菜谱的过程,把同是文字的做菜流程经由大脑分解为动作和食材。

汇编是如何经由大脑分解为动作和食材的,这个过程可以(先)视为一个黑盒动作,不做过多描述,就像你既然已经可以学习做菜已经默认为一个成年人,而不是一个啥都不知道的婴儿。

相似的地方是:菜谱以文字记载做菜流程,磁盘上的汇编程序以二进制码来记录指令和数据。

待续...

CPU的三种总线:地址,控制和数据总线

地址总线决定可寻址范围,实际是厨房容纳食材空间的大小,地址总线以外的数据可视为存放于厨房旁边的一个仓库。比如16位的8086,24位的80286。对于程序员来说,os的位数通常指的就是寻址位数,比如32位windows编程,你就拥有了4G寻址空间;而DOS你只有1M(本该是64k,但DOS通过段式寻址方式,用段地址:偏移量将寻址空间扩充为16x64k = 1M)

数据总线决定一次读写的数据位宽,决定单位时间内CPU的运算能力,比如一个锅子的大小,一个指令周期就只能处理多少数据。数据总线宽度常用于定义CPU种类,比如32位的80386和16位的8086/80286,8位的8088

控制总线决定厨房处理方式的多样性:可以蒸炸煎炒(比如用来区分各种硬件中断信号,硬中断用于控制接口卡,通过定义中断号来控制各种外设:如显卡,声卡,分配不同的中断号,通过中断号(类似于索引)接受CPU发送的控制命令,可以将其想象为封建皇帝(CPU)设置的行(中书)省),控制总线是对定义CPU种类、OS种类影响最小的总线。

eb8dfcf2df4f381f041a469f14e6d294.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值