zoukankan      html  css  js  c++  java
  • 汇编语言入门(在debug中编辑和调试程序)

     

     

     分类:
     

            我们在Windows中进入的Dos方式,实际上是虚拟8086模式的Dos,方法是:点击“开始”,“运行”,输入"command",点击“确定”, 可以看到弹出一个黑色的框框,然后,在黑色的框框中输入相关信息,如图所示(提前说一句,汇编语言对大小写不敏感,而C语言对大小写敏感):

           下面来具体分析一下:

          1. debug是一个调试工具(虽然可以在debug中写程序,但真正要写汇编程序,很少在debug中写)

          2. r用于查询各寄存器的值

          3. a用来输入汇编指令

          4. t用来执行一条汇编指令

          5. 还有其他命令,如d, e等等,此处不做介绍,用的时候,查一下就Ok

          6.CPU执行的起点是CS:IP处

          7.debug中写程序时,mov ax, 1 中的1表示0001h, 验证如下:

            下面,我们再来看一个程序:

            下面简要分析一下:

           1. 栈为SS:SP, 即1000:0100

           2. push表示入栈

           3. pop表示出栈

           4. 根据栈的性质可知:ax和bx的值交换了

           还有一个问题需要解决:在上面的过程中,是用t命令来执行程序的,每次只能执行一条,那有没有什么命令可以将程序完全执行的呢?有!且看g命令的用法:

            对一些人来说,看不到程序,看不到操作,就看不到想看到的东西,弄懂上面几个小程序,对汇编语言就有了一个初步的认识了,别一开始就搞无边无际的理论。

           虽然基本操作和代码简单(容易被所谓的汇编语言大牛鄙视),但无疑,最简单的东西通常具有最大的单刀直入性。入门了,一切都不在话下。

  • 相关阅读:
    #轻重链剖分,交互#LOJ 6669 Nauuo and Binary Tree
    #贪心#洛谷 6093 [JSOI2015]套娃
    #根号分治,树上倍增#洛谷 3591 [POI2015]ODW
    #KD-Tree,替罪羊树#洛谷 6224 [BJWC2014]数据
    #K-D Tree#洛谷 2093 [国家集训队]JZPFAR
    nim-lang: UUID shellcode execution(过所有杀软)
    nim-lang 免杀测试:回调函数结合隐写术
    Shellcode Injection via Callbacks(nim学习系列)
    Reflective dll injection(nim 学习系列)
    搭建简易的 http server(nim 学习系列)
  • 原文地址:https://www.cnblogs.com/java2016/p/5469447.html
Copyright © 2011-2022 走看看