数据表示
二进制:
便于计算机存储及物理实现
特点:逢二进一,由0和1两个数码组成,基数为2,各个位权以2k表示
二进制数: 00110101010100010B
二进制数的算术运算:逢2进1、借1当2
十六进制:
需要掌握加减法
用于表达二进制数,相互转换简单
基数16,逢16进位,位权为16k
16个数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
十六进制数的加减:逢16进位1,借1当16
转换
每4个二进制位对应一个16进制位
十进制转换为n进制,除n取余,从下到上,从高位到低位
数
无符号整数:只表达0和正整数的定点整数,N位无符号整数表达范围:0~2N-1
有符号整数:表达负整数、0和正整数的定点整数,最高位表达数值正负,符号位用0表示正数、1表示负数
补码:
正数补码:直接表示数值大小(同无符号数)
负数补码:将对应正数补码取反加1
BCD码:
压缩BCD码:一个字节表达两位BCD码
非压缩BCD码:一个字节表达一位BCD码(低4位表达数值,高4位常设置为0)
常量
minint = 10 ;整数常量
maxint equ 0ffh;整数常量
CallDOS equ <int 21h>
;字符串常量,必须用equ,;字符串要用<>括起来
变量
变量定义伪指令有DB、DW、DD、DF、DQ、DT
“?”表示初值不确定,即未赋初值
复制操作符DUP: 重复次数 DUP(重复参数)
存储方式
16位数据含高低2个字节,占2个连续的字节存储单元
小端方式:Intel处理器采用小端方式
低字节数据存放在低地址存储单元,高字节数据存放在高地址存储单元
大端方式:低字节数据存放在高地址存储单元,高字节数据存放在低地址存储单元
“ORG 参数”控制存放的偏移地址
“ALIGN N”控制对齐N字节边界
属性
[ ] 括起的表达式作为存储器地址指针
$ 返回当前偏移地址
OFFSET 变量名 返回变量名所在段的偏移地址
SEG 变量名 返回段基地址(高16位)
类型名 PTR 变量名 将变量名按照指定的类型使用
TYPE 变量名 返回占用字节空间的字量数值
LENGTHOF 变量名 返回整个变量的数据项数
SIZEOF 变量名 返回整个变量占用的字节数
寻址方式
数据寻址方式:
立即数寻址方式:操作数紧跟操作码,是机器代码的一部分,操作数从指令代码中立即得到,即立即数(Immediate),用常量形式直接表达,只用于源操作数,常用来给寄存器和存储单元赋值.
通用寄存器寻址:操作数存放在处理器的内部寄存器中
操作数在主存中,通过存储器地址指示,编程时,存储器地址使用包含段选择器(段基地址)和偏移地址的逻辑地址
直接寻址:有效地址只有位移量部分,直接包含在指令代码中,mov指令不支持两个操作数都是存储器操作数,常数不能当目的操作数。
寄存器间接寻址:有效地址存放在寄存器中 (寄存器内容=偏移地址=有效地址)
没有说明存储单元类型
寄存器相对寻址:有效地址是寄存器内容与位移量之和
基址变址寻址:使用基址寄存器内容加上变址寄存器内容形成有效地址寻址操作数
相对基址变址寻址:由基址寄存器内容、变址寄存器内容及位移量求和构成存储器操作数的有效地址