关于汇编变量解决方法
关于汇编变量
如果在比如说:mov sector,cx这个sector从来没有定义过,是不是代表命名一个sector的字变量
------解决方案--------------------
看看自己的标题 “关于汇报变量”
1. 清楚变量的声明 与 定义
2. Intel x86 汇编中 变量名只是地址的引用。
mov eax, [ val1 ] 等价于 mov eax, val1
3. 您的情况 Sector 可以是一个 标号,不占内存空间,但代表了一个内存地址。mov 的长度 cx 已经给出。
------解决方案--------------------
就不应该在汇编中加入变量这个概念...该死的老湿
汇编里面如果要储存一个值,就需要一个空间,这个空间可以存在代码段,数据段,或者堆栈里面。
如果在代码段中,你只要知道它的实际地址,它也不是一个常量。
如mov eax, 100h,只要查手册找到mov eax, 100h指令的bit分布,100h依然是个“变量”,我在程序其他地方可以随意使用它,修改它。
还有一种就是在代码段里直接划分一块区域。总而言之,只要有空间,我就可以当变量用。
mov eax, 100h
jmp hop
temp dw 100h
hop:
...
这样,我在代码区内,又有一个可用的空间,它本质上和上面的100h没有任何区别,都是代码空间里面的一小段空间,只是在编程的时候我们可以显式地用它,而100h要用它却需要查一个指令内偏移量。
先小总结一下,在汇编中,没有什么变量常量的概念。但是有一部分特殊的东西可以这么替换一下,但这种替换是你真正搞明白之后才能这么做,不是学的时候。如果你学的时候就这样,只会是你在学低级语言的时候陷入理解高级语言的元素的尴尬。
同样,如果我们把这种空间划分在栈里面,那就可以理解为通常意义下的临时变量。但这是高级语言中的“临时变量”在汇编层的实现方式。不意味着这就是汇编里面的临时变量,因为汇编哪来的变量这个概念???
变量的定义是什么?常量的定义是什么?在汇编中有对应的东西吗?按变量的定义,在汇编层,可用内存哪都是变量,代码段都成变量了。按常量的定义,好吧,估计BIOS的映射区算常量...
该死的计算机的老湿叫兽,很庆幸我是数学系的。
如果在比如说:mov sector,cx这个sector从来没有定义过,是不是代表命名一个sector的字变量
------解决方案--------------------
看看自己的标题 “关于汇报变量”
1. 清楚变量的声明 与 定义
2. Intel x86 汇编中 变量名只是地址的引用。
mov eax, [ val1 ] 等价于 mov eax, val1
3. 您的情况 Sector 可以是一个 标号,不占内存空间,但代表了一个内存地址。mov 的长度 cx 已经给出。
------解决方案--------------------
就不应该在汇编中加入变量这个概念...该死的老湿
汇编里面如果要储存一个值,就需要一个空间,这个空间可以存在代码段,数据段,或者堆栈里面。
如果在代码段中,你只要知道它的实际地址,它也不是一个常量。
如mov eax, 100h,只要查手册找到mov eax, 100h指令的bit分布,100h依然是个“变量”,我在程序其他地方可以随意使用它,修改它。
还有一种就是在代码段里直接划分一块区域。总而言之,只要有空间,我就可以当变量用。
mov eax, 100h
jmp hop
temp dw 100h
hop:
...
这样,我在代码区内,又有一个可用的空间,它本质上和上面的100h没有任何区别,都是代码空间里面的一小段空间,只是在编程的时候我们可以显式地用它,而100h要用它却需要查一个指令内偏移量。
先小总结一下,在汇编中,没有什么变量常量的概念。但是有一部分特殊的东西可以这么替换一下,但这种替换是你真正搞明白之后才能这么做,不是学的时候。如果你学的时候就这样,只会是你在学低级语言的时候陷入理解高级语言的元素的尴尬。
同样,如果我们把这种空间划分在栈里面,那就可以理解为通常意义下的临时变量。但这是高级语言中的“临时变量”在汇编层的实现方式。不意味着这就是汇编里面的临时变量,因为汇编哪来的变量这个概念???
变量的定义是什么?常量的定义是什么?在汇编中有对应的东西吗?按变量的定义,在汇编层,可用内存哪都是变量,代码段都成变量了。按常量的定义,好吧,估计BIOS的映射区算常量...
该死的计算机的老湿叫兽,很庆幸我是数学系的。