当前位置:   article > 正文

汇编语言程序中的表达式和运算符_汇编绝对表达式

汇编绝对表达式

汇编语言程序设计中,也经常使用各种表达式,表达式一般由变量、常量、运算符和括号构成。常用的表达式有数字表达式、逻辑表达式和字符串表达式。

下面分别介绍表达式中的各元素。

(1)字符串表达式

字符串表达式一般由字符串常量、字符串变量、运算符和括号构成。字符串由包含在双引号内的一系列字符组成。编译器所支持的字符串最大长度为512字节。

当在字符串中包含“$”或引号时,可以用“$$”表示“$”,用两个双引号表示一个双引号。

例如:

  1. abc SETS "one""double quote"
  2. def SETS "one$$dollar symbol"

上面的例子分别将字符串abc和def赋值为“one " double quote”和“one $ dollar symbol”。

字符串可以通过SETA、SETL、SETS伪操作对其赋值。

常用的与字符串表达式相关的运算符如下。

  • LEN:计算字符串长度运算符。
  • CHR:ASCII码转换运算符。
  • STR:字符串转换运算符。
  • LEFT:字符串取左运算符。
  • RIGHT:字符串取右运算符。
  • CC:字符串连接运算符。

下面的例子说明了如何使用字符串操作符给字符串变量赋值。

          improb  SETS   "literal":CC:(strvar2:LEFT:4)

这个例子将字符串赋值为“literalatrv”。

(2)整数表达式

整数表达式一般由数字常量、数字变量、数字运算符和括号构成。

整数表示式可以包含寄存器相关(register-relative)或程序相关(program-relative)表达式,这些表达式在编译时被汇编器翻译为地址无关数字常量。

整数表达式一般被计算为32位的整数,当此整数被定义为无符号数时,其取值范围为0~232-1,当被定义为有符号数时,其取值范围为-231~231-1。汇编器认为-n和232-n是相等的。对于关系操作,如比较两个数的大小,汇编器将其操作数看做无符号的数。也就是说“0>-1”,对汇编器来说取值为“假({FLASE})”。

下面的例子说明了在程序中,如何对整数表达式进行操作。

  1. a SETA 256*256 ;将数字变量赋值为 256*256
  2. MOV r1,#(a*22) ; 将数字表达式(a*22) 的值放入r1

汇编语言中,整数数字量有以下几种形式。

  • 十进制数(decimal-digis)。
  • “0x” + 十六进制数(0xhexadecimal-digits)。
  • “&” + 十六进制数(&hexadecimal-digits)。
  • n进制数(n_base-n-digits)。
  • 字符(character)。

其中,十进制数(decimal-digis)可以是数字“0”到“9”的任意组合;十六进制数(hexadecimal-digits)可以是数字“0”到“9”和字母“A”到“F”的任意组合;“n_”可以取数字2到9,“base-n-digits”是在n进制下合法的任意数值;字符(character)可以是除单引号以外的所有字符。

下面的例子说明了整数表达式的基本用法。

  1. a SETA 34906
  2. addr DCD 0xA10E
  3. LDR r4,=&1000000F
  4. DCD 2_11001010
  5. c3 SETA 8_74007
  6. DCQ 0x0123456789abcdef
  7. LDR r1,='A' ;ARM伪指令将整数65(A的ASICII码)存入寄存器
  8. ADD r3,r2,#'\''; 将整数39(字符“/”的ASICII码)加到r2,结果存入r3

(3)浮点数字量表达式

浮点数字量有以下几种形式。

  • {-}digitsE{-}digits。
  • {-}{digits}.digits{E{-}digits}。
  • 0xhexdigits。
  • &hexdigits。

其中,digits为十进制数,要在其后加上字母E(大写或小写)来表示其指数;hexdigits为十六进制数。

单精度浮点数的表示范围为1.17549435e–38~3.40282347e+38;双精度浮点数的表示范围为2.22507385850720138e–308~1.79769313486231571e+308。

下面的例子说明了浮点数据量的基本用法。

  1. DCFD 1E308,-4E-100
  2. DCFS 1.0
  3. DCFD 3.725e15
  4. LDFS 0x7FC00000
  5. LDFD &FFF0000000000000

(4)逻辑表达式

逻辑表达式一般由逻辑量、逻辑运算符和括号构成,其表达式的运算结果为真或假。与逻辑表达式相关的运算符有“=”、“>”、“<”、“>=”、“<=”、“/=”、“ <>” 运算符和“LAND”、“LOR”、“LNOT”及“LEOR”运算符。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/302812
推荐阅读
相关标签
  

闽ICP备14008679号