07、汇编语言--常量

常量表达

常量(Constant)是程序中使用的一个确定数值,在汇编语言中有多种表达形式。

常数

常数指由十、十六和二进制形式表达的数值,各种进制的数据以后缀字母区分:
07、汇编语言--常量

在实际应用中,通常使用十进制表达数值,使用十六进制表达存储器地址、BCD码数值、数值的内部编码或者指令代码等,使用二进制表达需要进行位操作的数值(例如逻辑量)等。

字符和字符串

字符或字符串常量是用双括号或单括号括起来的单个或多个字符。其数值是每个字符对应的ASCII码值。

如果字符串中有单引号本身,可以用双引号;反之亦然,例如:

“Let’s have a try.”
‘Say “Hello”, my baby.’

也可以直接用单引号或者双引号的ASCII值(单引号:27H,双引号:22H)。

符号常量

符号常量使用一个符号表达数值。

MASM提供的符号定义伪指令有“等价EQU”和“等号=”。它们用来为常量定义符号名,格式为:

符号名 equ 数值表达式
符号名 equ<字符串>
符号名 =数值表达式

EQU伪指令定义后的符号名是不能重复再定义的:

NULL equ 0	正确
count equ count + 64H 错误

“=”伪指令中定义的符号名可重复定义:

count = 100
count = count + 64h

注意:数值表达式也是常量所构成的算式,汇编主要包含+(加)、-(减)、*(乘)、/(除)和MOD (取余数)。

.model small
.stack
.data   ;数据段
    const1  db  100,100d,01100100b,64h,'d'
    const2  db  1,+127,128,-128,255,-1
    const3  db  105,-105,32,-32,32h,-32h
    const4  db  '0123456789','abcxyz','ABCXYZ'
    crlf    db  0dh,0ah,'$'
    minint  = 10
    maxint  equ 0ffh
    const5  db minint,minint+5,maxint-5,maxint-minint
    const6  db 4*4,34h+34,67h-52h,52h-67h
    CallDOS equ<int 21h>
.code   ;代码段
.startup
    mov dx,offset const4    ;从Const4开始显示
    mov ah,09h
CallDOS
.exit
end
上一篇:明细数据层(DWD)


下一篇:[LuoguP3064][USACO12DEC]伊斯坦布尔的帮派Gangs of Istanbull(加强版)_线段树_贪心