摘要: 程序的执行过程可看作连续的函数调用。当一个函数执行完毕时,程序要回到调用指令的下一条指令(紧接call指令)处继续执行。函数调用过程通常使用堆栈实现,每个用户态进程对应一个调用栈结构(call stack)。编译器使用堆栈传递函数参数、保存返回地址、临时保存寄存器原有值(即函数调用的上下文)以备... 阅读全文
posted @ 2014-05-27 17:01 clover_toeic 阅读(80904) 评论(13) 推荐(145) 编辑
摘要: 过程赋值:用于对reg型变量赋值,改变寄存器的值或为以后排定改变。 语法{阻塞性(blocking)赋值} RegisterLValue = [TimingControl] Expression;{非阻塞性(non-blocking)赋值}RegisterLValue Analysis &... 阅读全文
posted @ 2014-05-27 16:35 clover_toeic 阅读(20836) 评论(2) 推荐(3) 编辑
摘要: 分析以下代码中变量存储空间如何分配: 1 //MemSeg.c: 代码无意义,仅供分析用 2 #include <stdio.h> 3 #include <stdlib.h> //malloc函数声明位于<stdlib.h>或<cstdlib>头文件中 4 #include <string.h> 5 阅读全文
posted @ 2014-05-27 14:35 clover_toeic 阅读(2140) 评论(0) 推荐(0) 编辑
摘要: 在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例是1:3,而Windows系统为2:2(通过设置Large-Add... 阅读全文
posted @ 2014-05-27 09:44 clover_toeic 阅读(40402) 评论(7) 推荐(50) 编辑