汇编程序基础语法
注意:立即数书写必须以数字开头,若十六进制数第一位为字母,可在前面添加0。
变量一旦被定义,就具有以下三个属性:
表示该变量存放在哪个逻辑段中,变量的段基值可以用SEG运算符获取。
表示变量所在位置与段起始点之间的字节数,变量的偏移量可以用OFFSET运算符获取。
变量的类型属性可以用TYPE运算符获取。
示例:
只分配存储空间,初始值为任意值。
示例:
示例:
注意:两个字符的存放顺序为为前一个字符存放在高地址,后一个字符存放在低地址。
DW和DD伪指令不能用两个以上字符构成的字符串赋初值(即便DD有4个字节的空间),否则将出错。
DUP成为重复数据操作符,用于批量分配存储空间。
注意: 移位运算符 与 移位指令 不同。
移位运算符的操作对象为 具体的数 ,移位操作在 汇编时 完成。
移位指令的操作对象为 寄存器或存储单元 ,移位操作在 程序运行时 执行。
注意:逻辑运算符均为 按位 运算。
注意:关系运算符比较的两个表达式必须 同为常数 或为 同一个逻辑段中 的变量。
常量比较,按 无符号数 进行比较。
变量比较,比较两者 偏移量大小 。
关系运算的结果为真 (全1) 或假 (全0) 。
取变量或标号所在段的段基值。
取变量或标号所在段内的偏移量。
取变量或标号的类型属性,返回结果为数字。
取 变量 长度。
若变量用重复数据操作符DUP说明,则length运算取外层DUP给定的值。
若没有用DUP说明,则length运算返回值为1。
示例:
SIZE运算符只能作用于变量,返回该变量TYPE和LENGTH的乘积。
对变量、标号或存储器操作数的类型属性进行修改或指定。
将地址表达式所指定的变量、标号或以其它形式表示的存储器地址的类型属性修改为所指定的类型值。
注意:此类修改为临时的,作用域为本语句。
将表达式的值分离出高字节和低字节。
输入的字符(ASCII码)会保存在AL寄存器中。
输出DL寄存器中的字符。
LOOP S执行过程: