1、伪指令:
1)segment/ends
XXXX segment
; 段开始
。。。
。。。
XXXX ends
; 段结束
2)end
汇编结束
3)assume
假设,假设某一段寄存器与定义的段相关联:assume CS:code
2、程序返回:
mov ax,4c00h
int 21h
3、编译器:微软masm5.0
最多可得到
目标文件(obj),列表文件(lst),交叉引用文件(crf),后两个是中间文件。
4、连接:
微软Overlay Linker3.60连接器
5、DOS加载
1) 命令解释器:Command.com;
2) PSP:加载段(DS)的头256字节,用于DOS与程序通信;
3)程序地址:
CS=DS+10H;
4) CX存放代码长度;
6、mov ax,[bx]
功能:bx存放的数据作为偏移地址EA,段地址SA存放在ds中,将SA:EA处的数据送入ax;
7、loop 标号
1) cx=cx-1;判断cx不为0则跳转;
2) 是一种
相对地址转移;(8位)
8、在汇编源程序中,数据不能以字母开头,所以要在前面加0;
9、DOS下的安全内存空间:0:200~0:2ff
10、assume cs:code,ds:data,ss:stack
CPU并不会将cs,ds,ss自动指向:code,data,stack
11、mov al,'a'
相当于 mov al,61h
12、大小写转换
大转小 | 大写字母+20H | or al,00100000B |
小转大 | 小写字母-20H | and al,11011111B |
13、等价表示一
mov ax,[200+bx] |
mov ax,200[bx] |
mov ax,[bx].200 |
14、SI与DI
1)不能分成两个8位
2)可单独使用:mov ax,[si]
3)默认段为ds
15、等价表示二
mov ax,[bx+200+si] |
mov ax,[200+bx+si] |
mov ax,200[bx][si] |
mov ax,[bx].200[si] |
mov ax,[bx][si].200 |