汇编(二)

寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。8086系统,有14个通用寄存器:AH+AL=AX(accumulator,累加寄存器) BH+BL=BX(base,基址寄存器) CH+CL=CX(count,计数寄存器) DH+DL=DX(data,数据寄存器) ,以上的AX、BX、CX、DX为16位通用寄存器,分别由两个 8位寄存器组成,两个8位寄存器可以单独使用,也可以组成16位寄存器作为整体使用。(EAX 暂不讨论)

此外还有4个段寄存器在CPU中发挥着不同的作用:          

ES(Extra Segment 附加段寄存器)暂不讨论              

CS(Code Segment 代码段寄存器)CS:IP指向一段空间,指明此处为代码需要CPU执行,设CS内容为X,IP为Y,经过地址加法器,X*16+Y最终指向物理地址。CS:IP只能由专门的指令JMP去执行。

DS(Data Segment 数据段寄存器)不能直接把数据送入到ds寄存器,因此需要先把数据送入一个通用寄存器再送入数据段寄存器。例如:mov ax,00FH   mov ds,ax。

 SS(Stack Segment 堆栈段寄存器)SS:SP指向一段堆栈空间的栈顶元素,指明此处为堆栈空间,栈就像一个盒子,LAST IN FIRST OUT 后进先出,从上到下,从低到高,指明一段内存为堆栈空间时,PUSH指令是将数据存入栈中,此时执行的大致流程是先将SP=SP+2 ,然后将数据存入,不然会将之前的数据覆盖,同样逆推POP指令,先将堆栈中元素取出,然后SP=SP-2,如果堆栈空间不做限制,一直执行PUSH指令或POP指令会造成堆栈溢出,对内存中的其他数据造成影响(例如将你的个人隐私取出或覆盖)。

书看的是王爽的《汇编语言》第二版(电子书)

视频看了狂神的和小甲鱼的,正在学习中,可能进度比较快,我只是将我个人所理解的表达出来,可能有理解错误或者遗漏的知识点,欢迎大家指正,谢谢。

共同学习,一起进步。

完结撒花❀❀❀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值