皮皮网

【pid控制电机源码】【稳庄指标源码】【分时obv指标源码】c语言自动更新基址源码_c程序自动更新

时间:2024-11-18 04:38:41 来源:apicloud 登录源码

1.基址寻址和变址寻址的区别

c语言自动更新基址源码_c程序自动更新

基址寻址和变址寻址的区别

       SP是堆栈指针寄存器,专门用来维护堆栈的,诸如POP,PUSH,CALL等指令都是跟SP相关的,所以SP对于程序来说是应该是只读的,而实际上你可以手动设置SP的值。如果用SP作为基地址的话,会出错的。而BP是堆栈的基址指针,如果不使用段超越标志的话,BP实际上是SS:BP,就像SI默认是DS:SI

       ï¼ŒDI默认是ES:DI,这是一样的道理。

       BP在C语言程序中使用广泛,例如下面的C程序编译为汇编应该是这样

       //C:

       int

       sum(int

       a,语言自pid控制电机源码int

       b

       )

       {

       DoSometing();

       return

       a+b;

       }

       ...//在其他的函数中

       c=sum(1,2);

       ...

       ;ASM:

       sum

       proc

       push

       bp

       mov

       bp,sp

       ;将sp的值送到bp,让bp指向栈顶

       call

       DoSomething

       mov

       ax,[bp+4]

       ;[bp+4]

       =

       a

       add

       ax,[bp+6]

       ;[bp+6]

       =

       b

       pop

       bp

       ret

       4

       sum

       endp

       ...

       ;在其他的函数中

       mov

       ax,2

       ;第二个参数

       push

       ax

       mov

       ax,1

       ;第一个参数

       push

       ax

       call

       sum

       mov

       addr_c,ax

       ;addr_c是我假定的c变量的地址.

       ...

       ä»Žä»¥ä¸Šçš„例子看来,使用BP是正确的,而不应该是SP,SP是专用寄存器,不要动它为好。将它的值送给BP就行了,不管你之后执行了inc

       bp

       è¿˜æ˜¯

       add

       bp,2,都不会影响堆栈的工作。

推荐资讯
云购源码是什么意思_云购源码是什么意思啊

云购源码是什么意思_云购源码是什么意思啊

美國一載硝酸卡車側翻 半徑1英里內被要求避難

美國一載硝酸卡車側翻 半徑1英里內被要求避難

八大行庫徵才4千人!行員起薪3.6萬 財富管理顧問上看7萬

八大行庫徵才4千人!行員起薪3.6萬 財富管理顧問上看7萬

社區要求「支付管理費」 外送員怒喊「抵制」

社區要求「支付管理費」 外送員怒喊「抵制」

湖北微商代理管理系统源码

湖北微商代理管理系统源码

解封後段班  《經濟學人》正常指數,台灣倒數第二|天下雜誌

解封後段班  《經濟學人》正常指數,台灣倒數第二|天下雜誌

copyright © 2016 powered by 皮皮网   sitemap