网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月01日漏签0天
c语言吧 关注:801,793贴子:4,376,120
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 首页 上一页 1 2 3 4 5 下一页 尾页
  • 71回复贴,共5页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

回复:深夜布道!C调用的汇编级解释!以及stdcall和cdcel 不加精对不

  • 只看楼主
  • 收藏

  • 回复
  • 萧の十三郎
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
呵呵,又有盗墓的了,待我仔细看看


  • 萧の十三郎
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:30楼
好吧,我没看过王爽神马的书.不过楼主讲的不错.


2026-03-01 16:50:06
广告
不感兴趣
开通SVIP免广告
  • elf0223
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:30楼
这是为了解释C过程调用而介绍的32位保护模式下汇编。不是我不会16位汇编。另外这也不是汇编教程。但是我想我确实给出了汇编最本质的内容。对于汇编介绍,概念清晰而且足够简单才是本文应该关注的。
关于16位汇编到32位保护模式之间的切换,涉及的内容比较复杂,不是本文这篇幅能够介绍的。有兴趣的童鞋可以参考于渊《一个操作系统的实现》,里面相当清楚的介绍了切换内容。觉得自己英文NB的也可以直接参考Intel CPU说明书第三卷。但是我想能把那本书搞定并自己动手实践自己的操作系统的童鞋不需要看这篇文章了吧。
另外再修正自己的一个错误:
mov eax, [ebp + 8]       ;复制第二个参数值(var2)到eax
mov eax, [ebp + 12]      ;加上第一个参数值(var1)
//这里应该是add eax, [ebp + 12]


  • 5B4B铅笔
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
mark..够本地化的解释. 最看不懂外国人写的书了.


  • mayadong7349
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
留下可爱滴爪印


  • 爪机娘
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
路过探望愤怒的小鸟


  • 天意神勇
  • 路人
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看雪的加密解密那本书已经写的够详细了。。还加精。。。


  • Times_Fly
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
写得很有水准,学习了。之前对stdcall,cdcel一直很困惑,这下明白啦。


2026-03-01 16:44:06
广告
不感兴趣
开通SVIP免广告
  • 菊花老怪
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
      支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持
      支持支持支持支持支持支持支持支持支持支持支持█████████持支持支持
      支持支持支持支持支持支持支持支持支持███████████████持支持
      支持支持支持支持支持支持支持支██████████████████持支持
      支持支持支持支持支持支████████████████持支持支持支持支持
      支持支持支持支持███████持███持支█████支持支持支持支持支持
      支持支████████████持支持支持支████持支持支持支持支持支持
      支██████████████持支持支持支████持支持支持支持支持支持
      支████████████持支持支持支持███████████持支持支持
      支████████████持支持支持支██████████████持支持
      支持██████████支持支持支██████持支持███████持支持
      支持支持支持支持████支持支持支████持支持支持支█████支持支持
      支持支持支持支持████支持支持████支持██支持支█████支持支持
      支持支持支持支持████支持支持████支持████支█████支持支持
      支持支持支持支持████支持支持████支持████支█████支持支持
      支持支持支持支持████支持支持████支持███持支█████支持支持
      支持支持支持支持████支持支持████支持███持支█████支持支持
      支持支持支持支持████支持支持████支████持支█████支持支持
      支持支持支持支持████支持支持████支████持支█████支持支持
      支持支持支持支持████支持支持████支████持支█████支持支持
      支持支持支持支持████支持支持████支████持支█████支持支持
      支持支持支持支持████支持支持███持支████持支█████支持支持
      支持██支持支█████支持支持███持支███支持支█████支持支持
      支持██████████支持支持支██持支██持支持支█████支持支持
      支持支█████████支持支持支持支持███持支持支持████支持支持
      支持支持支███████支持支持支持支持███持████支持支持支持支持
      支持支持支持██████支持支持支持支████持支█████支持支持支持
      支持支持支持支持支███支持支持支持█████持支持███████持支持
      支持支持支持支持支持支持支持支持██████支持支持支██████持支持
      支持支持支持支持支持支持支持支██████持支持支持支███████支持
      支持支持支持支持支持支持支持█████持支持支持支持支持██████支持
      支持支持支持支持支持支持支█████支持支持支持支持支持支████持支持
      支持支持支持支持支持支持███持支持支持支持支持支持支持支持███持支持
      支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持支持



  • 爪机娘
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
       @    @           @    @            @           @        @          
       @    @   @        @    @   @         @     @      @   @@@@@@@         
@@@@@@@@@@@@@@ @@@@@@@@@@@@@@    @@@@@@@@ @      @    @    @          
     @ @    @           @    @            @    @       @@    @ @           
     @@@@@@@@@@        @    @            @    @     @ @ @    @            
    @    @      @       @    @       @@@@@@@@@@@@@@ @ @     @ @           
   @ @   @   @   @       @    @    @           @       @ @    @    @          
@    @ @ @    @      @     @ @@           @          @ @@   @   @@@       
    @@@@@@@@@ @     @@     @@           @@    @       @      @            
       @@@     @    @ @    @@           @@   @@        @   @@@@@@@@        
      @ @ @    @   @   @ @@ @     @    @@ @@@     @     @      @    


  • dark_ice_rain
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有点儿不解,栈初始的时候大小为0字节么?
哎~各种名词,lz好淫、、、


  • elf0223
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:42楼
栈本来就是运行时建立起来的。
当一个程序还作为一个文件在硬盘上躺着时,哪里来“栈”的概念?
程序被加载到内存中后,函数、全局变量的地址才在内存中被确定下来。当然栈也是在此时初始化的了。初始化就是给一个地址作为栈的起始点,以后的入栈出栈都是在这个起始点上操作吧。所以“栈”叫做“运行时栈”。
比较麻烦的是多线程库,它应该会为每一个执行流都建立一个栈(具体的实现我不知道,纯属猜测)。


  • dark_ice_rain
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:43楼
真。。。抽象啊~~~


  • elf0223
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:44楼
一点都不抽象。
你写了一个程序,然后编译器编译并链接好你的程序。这时你的程序只是是一个可执行文件对吧?--你还没有去运行你的程序,它还是一个文件--只不过是带有某些表头信息之类的二进制文件--但终究还是一个文件对吧,它这时是不是还在你的硬盘上?--你还没去执行它呢。
当然了,你写了程序自然是要去执行它的。当你去执行你的程序的时候,操作系统首先要做一件事情,就是把你的程序从硬盘上“读”到内存中。这个过程叫做程序加载。
程序加载完毕,你的程序的那些指令的地址才在内存中被确定,这时你的程序就不再叫“可执行文件了”,而是叫“进程”,因为这时你的程序才开始活动,也就是被CPU执行。--这些从概念上来讲是很基础的东西啦哥们(实际实现就非常复杂)。进程是一个运行时概念。而可执行文件是一个静态概念。
当然,栈是进程中的东西啊。那些所谓的代码段、数据段、堆、栈都是指一个程序在运行起来之后它在内存中的布局啊。
所以栈是在程序刚开始运行时被初始化的,这不是很容易理解吗~


2026-03-01 16:38:06
广告
不感兴趣
开通SVIP免广告
  • dark_ice_rain
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:45楼
膜拜啊~~~谢谢了。。。
强人呐。。。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2 3 4 5 下一页 尾页
  • 71回复贴,共5页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示