汇编语言指令与debug命令符

•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

 
原文地址:https://www.cnblogs.com/acm1314/p/4560622.html