汇编指令调试工具(DEBUG)
这里选用xp系统的Debug指令进行调试汇编指令。
- debug,在cmd命令中键入debug进行debug工具模式
- t ,执行CS:IP指向的地址的汇编指令
r 寄存器名 进行修改寄存器的值,r ax 回车,输入你想修改的值
r后面不加寄存器的名称则表示查看寄存器中的值d 查看内存。段地址:偏移地址
e 段地址:偏移地址,进行修改内存中值,字符用”“.
a 段地址:偏移地址,可以直接输入汇编指令
- u 默认将CS:IP指向的开始地址进行翻译成汇编指令。也可以进行段地址:偏移地址的查询
Register
cpu能直接操作的数据来源从寄存器和内存中来,而寄存器在cpu内部,通过内部总线和运算器和控制相连。那么,cpu访问register的速度优于memory。顾名思义,展示存放数据的地方。寄存器对cpu外部器件的控制显得尤为重要,而且寄存器是某些汇编命令取数的基础。对于汇编语言的实质似乎就是,设置特定寄存器的值,执行命令使外部数据进入cpu内部的指定的寄存器(一般为通用寄存器如:AX,BX,CX,DX等)或者是内部计算出来的寄存器中数据回传到内存(统一编址的内存)。计算机进行运作或者逻辑的操作的中间结果一般是直接存放到寄存器中。当然,汇编的很多命令中隐含的是寄存器的设置。比如:段寄存器:DS(数据段寄存器配合偏移地址),CS(代码段寄存器配置IP寄存器偏移地址),SS(堆栈段寄存器配合SP寄存器偏移地址),这些段寄存器都是用来与内存进行交互的寄存器,这样CPU就大致的将二进制分为:代码段,数据段,堆栈段。于是这也是汇编语言编程的主要书写结构。
主要汇编命令
- mov register register
- mov register immediate number(这里是立即数寻址)
- mov memory register
- mov memory memory 和 mov memory immediate number有误