不要“数字常量, 字符常量和符号常量”这种笼统的回答··
比如对于数字常量,我想知道存储器中存储的内容算不算常量··,存储器的地址算不算常量··,寄存器中的内容算不算常量什么的·····
汇编语言的常量有哪些···求详解
答案:1 悬赏:0 手机版
解决时间 2021-03-17 20:55
- 提问者网友:杀手的诗
- 2021-03-17 18:00
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-03-17 18:38
不要完全套用高级语言的概念来理解汇编语言。
在汇编语言中,只有那些在编程时就已经确定、且再不可更改的数据,才可理解为常量。
基本上,常量就是指立即数。
它的数值是指令代码的一部分。
存储单元里的内容是可以改写的,它们是内存变量,不是常量。
寄存器中的内容也是可以改写的,它们是寄存器变量,也不是常量。
在程序中,常量的出现形式,可以是多种多样的。
1. 可以是直接书写的数值。
比如,MOV AH, 02H 中的02H。当然也可以用十进制、二进制、字符串等其它数据形式。
2. 可以是定义过的符号,EQU, =等伪指令可以用于定义常量。
比如 ABC EQU 330CH 这样定义的ABC,就是符号常量。
3. 可以是通过数值返回算符或常量表达式生成的常量。
数值返回算符如OFFSET等都可以用于产生立即数,所以用它们组成的表达式也是常量。
比如MOV BX, OFFSET ARRAY指令的源操作数 OFFSET ARRAY是由汇编程序在汇编时确定其值的常量。
在汇编语言中,只有那些在编程时就已经确定、且再不可更改的数据,才可理解为常量。
基本上,常量就是指立即数。
它的数值是指令代码的一部分。
存储单元里的内容是可以改写的,它们是内存变量,不是常量。
寄存器中的内容也是可以改写的,它们是寄存器变量,也不是常量。
在程序中,常量的出现形式,可以是多种多样的。
1. 可以是直接书写的数值。
比如,MOV AH, 02H 中的02H。当然也可以用十进制、二进制、字符串等其它数据形式。
2. 可以是定义过的符号,EQU, =等伪指令可以用于定义常量。
比如 ABC EQU 330CH 这样定义的ABC,就是符号常量。
3. 可以是通过数值返回算符或常量表达式生成的常量。
数值返回算符如OFFSET等都可以用于产生立即数,所以用它们组成的表达式也是常量。
比如MOV BX, OFFSET ARRAY指令的源操作数 OFFSET ARRAY是由汇编程序在汇编时确定其值的常量。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯