请问谁能分析下《自己动手写操作系统》堆栈使用
时间:2011-09-10
来源:互联网
第三章大量的用到了堆栈,晕了。
请高手们讲一下调用MemCpy前后的堆栈变化,MemCpy是另一个文件里的,被include进来的:
例如
C/C++ code
C/C++ code
请高手们讲一下调用MemCpy前后的堆栈变化,MemCpy是另一个文件里的,被include进来的:
例如
C/C++ code
PagingDemo: mov ax, cs mov ds, ax mov ax, SelectorFlatRW mov es, ax push LenFoo ;函数长度 push OffsetFoo ;函数起始地址 push ProcFoo ;00401000h call MemCpy add esp, 12 ;相当于弹出压入的参数 .......
C/C++ code
MemCpy: push ebp mov ebp, esp push esi push edi push ecx mov edi, [ebp + 8] ; Destination mov esi, [ebp + 12] ; Source mov ecx, [ebp + 16] ; Counter .1: cmp ecx, 0 ; 判断计数器 jz .2 ; 计数器为零时跳出 mov al, [ds:esi] ; ┓ inc esi ; ┃ ; ┣ 逐字节移动 mov byte [es:edi], al ; ┃ inc edi ; ┛ dec ecx ; 计数器减一 jmp .1 ; 循环 .2: mov eax, [ebp + 8] ; 返回值 pop ecx pop edi pop esi mov esp, ebp pop ebp ret ; 函数结束,返回 ; MemCpy 结束-------------------------------------------------------------
作者: sygspjlsj 发布时间: 2011-09-10
一本不错的书,好好研读吧!讲的应该很清楚吧!
作者: zhongxiaowenhuman 发布时间: 2011-09-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28