•MOV与ADD指令
汇编指令 |
控制CPU完成的操作 |
形式化语法描述 |
mov ax, 18 |
将18送入AX |
(AX)=18 |
mov ah, 78 |
将78送入AH |
(AH)=78 |
add ax, 8 |
将AX中的数值加8 |
(AX)=(AX)+8 |
mov ax, bx |
将BX中数据送入AX |
(AX)=(BX) |
add ax, bx |
将AX、BX内容相加,结果存入AX |
(AX)=(AX)+(BX) |
•说明:汇编指令不区分大小写;两个操作数必须位数一致。
•Debug命令
▫R命令:查看、改变CPU寄存器的内容
▫D命令:以16进制形式显示一块内存区域的内容
▫E命令:改写内存中的内容
▫A命令:以汇编指令的格式在内存中写入一条机器指令
▫U命令:将内存中的机器指令翻译为汇编指令
▫T命令:执行一条机器指令
▫G命令:执行到指定位置(断点),如“g cs:0012”;
▫P命令:执行子程序调用、循环、中断、重复字符串操作等指令,停止于下条指令。
▫Q命令:退出Debug
•说明:
▫在Debug中输入或显示的数据都是十六进制形式;
▫Debug命令是单个字母,命令和参数的大小写可混合输入;
▫当命令出现语法错误时,将在出错位置显示 “^Error”;
▫使用T命令执行一条指令前,一定要确保其有效。无效指令可能导致处理器死锁、Debug无法响应、甚至系统重新引导。
MOV/ADD/SUB指令(1/2)
•功能:传送、累加、累减。
•格式:两个操作数。
操作数1 |
操作数2 |
示例 |
寄存器 |
立即数 |
mov ax, 1000H |
段寄存器 |
寄存器 |
mov ds, ax |
寄存器 |
寄存器 |
add bx, ax |
寄存器 |
内存单元 |
sub cx, [0] |
内存单元 |
寄存器 |
mov [0], al |
寄存器 |
段寄存器 |
mov bx, ds |
内存单元 |
段寄存器 |
mov [0], ds |
段寄存器 |
内存单元 |
mov ds, [0] |
…… |
…… |
…… |
•INC指令(inc)
▫格式:inc 操作数
▫功能:将操作数的值加1
▫说明:操作数可以是寄存器,也可以是内存单元
•DEC指令(dec)
▫格式:dec 操作数
▫功能:将操作数的值减1
▫说明:操作数可以是寄存器,也可以是内存单元
•使用LOOP指令实现循环功能的要点
▫在CX中存放循环次数;
▫LOOP指令中的标号所标识地址要在指令前面;
▫要循环执行的程序段写在标号和LOOP指令中间;
•LOOP循环程序框架
mov cx,循环次数
s: 循环执行的程序段
……
loop s