汇编小本本
0.取反(相反数)(各位取反末尾加1)这个的操作数是补码,计算出来的值也是补码。求一个负数的补码可以先求其绝对值的补码,之后再取反。
1.补码中 FFFF表示-1。第一位是1其他位全为0表示负的最小值。
2.列竖式时可以全用补码这样计算出来的值也是补码,但判断标志符的时候不建议这样。用原码列竖式时应都为无符号数这样计算出的数才是对的。
3.错误表述:Mov [1000H] , 1。两操作数类型均不确定,需要强制类型转换,形如:Mov word prt [1000H] , 1 。
4.错误表述:Mov X , Y / Mov [SI] , [DI]。两个操作数不能同时为存储器操作方式。
5.寄存器间接寻址:Mov AX , [BX] 。寄存器相对寻址:Mov AX , [BX + 100H]
6.错误操作数形式:SI[100H]。寄存器必须在“[ ]”中。
7.错误形式:Mov BX , OFFSET [BX + 200H]。因为,OFFSET是对变量和标号求偏移属性的,而不能对其他存储单元寻址方来用。正确形式:Mov BX , OFFSET BUFFER.
8.INC、DEC指令不影响CF
9.
10.乘、除后的操作数不可为立即数。
11.
除法对各标志位无定义。
12.在逻辑指令中:
13.XCHG指令操作数不可为段寄存器和立即数。
14.错误形式:CMP 12H,CL。立即数不可为目标操作数。
15.属性运算符:
- SEG <标识符>:返回标识符所在段的段地址
- OFFSET<标识符>: 返回标识符的段内偏移地址
- TYPE <标识符>: 返回变量和标号的类型值。其中DB = 1,DW = 2,DD = 4,NEAR = -1,FAR = -2
- LENGTHOF <变量名>: 只能应用于变量,返回变量所定义的数据个数
- SIZEOF <变量名>: 只能应用于变量,返回变量所占存储单元的个数
16.Debug下常用指令
- A[起始地址] :从指定位置输入汇编指令
- U[起始地址][结束地址|字节数]:反汇编,查看范围内汇编指令
- R[寄存器名]:查看寄存器中内容并可修改
- D[起始地址][结束地址|字节数]:显示存储单元内容
- E[起始地址][内容表]:修改存储单元内容
- G[=起始地址][断点地址]:从起始地址运行至断点地址
- T[=起始地址][指令条数]:从指定地址执行指定条数的指令,P指令与其类似但用于有中断调用的程序
- Q:退出Debug模式
16.8086CPU由执行部件EU和总线接口部件BIU两部分组成。
17.换行:0AH 。回车:0DH。先换行再回车。
18.接口电路的主要功能
- CPU与外设的数据缓冲
- 接收并执行CPU的命令
- 返回外设状态
- 中断管理
- 信号转换等
19.=和EQU的异同
同:二者都是赋值,且都不分配空间
异:<1> =只能定义数值。 <2> =在同一程序中可对一个符号重复定义。