博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编指令
阅读量:5159 次
发布时间:2019-06-13

本文共 1019 字,大约阅读时间需要 3 分钟。

1.debug的常用命令

  1.r命令

    查看、修改CPU中寄存器的值

    -r :查看寄存器的值

    -r  cs :修改寄存器cs的值

  2.D命令

    查看内存中的内容

    1.-d  段地址:偏移地址

    -d 1000:01     查看内存100001处的内容

    -d 段地址:偏移地址 结尾偏移地址

    -d 1000:0 9     查看100000 - 100009

  3.E命令

    改写内存中的内容

    1.-e 1000:10 0 1 2 3     从1000010开始向内存中写入0123数据, 如果写入内存的数据是字符其实实际上存入内存中的是其对应的ascll码

  4.U命令

    查看机器码对应的汇编指令

    -u 1000:0   查看1000:0 处的机器码对应的汇编指令

  5.T命令

    执行当前的指令  

    执行cs:ip 在指向的内存单元中的指令,并且使cs:ip指向下一条指令

  6.A命令

    以汇编指令的形式在内存中写入机器指令

    -a 1000:0

    1000:0000 mov ax,1

    1000:0003 mov bx,2

    1000:0006 add ax,bx

 

 

2.将机器码为b8 20 4e, 对应的汇编指令为mov ax,4E20H的指令,使用汇编指令写入内存并且执行

第一种方法:  使用e指令向内存中写入指令(从coding的角度来说,写入的是机器语言,也就是机器码)

1.使用e指令,修改内存单元中的内容,改为指令的机器码

2.机器码写入成功

3.修改cs和ip,使其指向的内存单元是我们刚写入指令的内存单元

4.重新指向cs和ip成功

5.使用t指令执行,内存单元中的指令,观察ax的值,发现已经执行成功

第二种方法: 使用a指令向内存中写入指令(从coding的角度来讲, 写入的是汇编语言)

1.使用a指令,向内存单元中直接写入指令,然后debug将汇编语言转换为机器语言写入到内存中(这样就是方便我们修改指令,不用存入机器码)

2.使用-t执行指令,也是执行成功

 3.栈操作

  1.push 寄存器              //入栈

  2.pop  寄存器              //出栈

4.dosbox下使用debug程序

 

转载于:https://www.cnblogs.com/kangjunhao/p/9613832.html

你可能感兴趣的文章
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>