汇编对学C语言的帮助(尚未完成)

深入理解汇编语言中的变量与寻址方式
本文详细解析了汇编语言中的变量概念,指出寄存器与变量的作用相似,着重介绍了寻址方式及其对数据类型的理解,包括基础寻址方式、栈的理解、变量含义、代码块与作用域、函数调用过程等关键信息。
首先先说明,在汇编中没有定义变量,跟变量有相同作用的是cpu寄存器,一般寄存器我现在看到的都是跟地址打交道,运算寄存器部分在计算机组成原理部分,汇编没讲
然后说明,在c语言中变量名其实就是地址,一般在c语言我们是传递变量的值,但是在编译器中我们变量名就是内存单元的别名
(1)寻址方式对数据类型的理解
汇编寻址方式(一): mov ax, [0]
是寻址的基础方式
汇编寻址方式(二): mov ax, [bx]
 
汇编寻址方式(三): mov ax, [bx + idata]
可转换为格式: [bx].idata <==> 结构体
idata[bx]  <==> 数组
汇编寻址方式(四): mov ax, [bx + si]
可转换为格式: [bx][si]   <==> 二维数组
汇编寻址方式(五): mov ax, [bx + si + idata]
可转换为格式: [bx].idata[si]  <==> 结构体中数组元素
举例:
struct Student
{
   float number;
   char name[10];
   char sex;
};
struct Student stu = {99, "xiaoming", 'M'}
在内存中
 
(2)对栈的理解
汇编中有ss:sp,栈段寄存器,call和ref指令配合对函数调用的理解,push ax和pop ax的保存寄存器内容
 
(3)变量含义
变量就是数据标号,代表着几块内存单元,在高级语言中是通过变量与内存通信
 
(4)代码块,作用域
{ }中内容在c语言中是一个segment/ends,变量
 
(5)对函数调用的理解
函数调用三部曲:1)数据入栈:保存实参、函数地址 2)开辟内存空间 3)jmp ip
调用结束三部曲:1)保存结果 2)释放内存空间 3)数据出栈:pop ax, pop ip 

转载于:https://www.cnblogs.com/rz-jin/archive/2012/12/13/2816370.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值