zoukankan      html  css  js  c++  java
  • 汇编的学习历程 -第一个程序

    一: 部分寄存器作用

    CS:IP

    任意时刻cpu将CS:IP指向的内容当做指令执行

    DS

    存放要访问数据的段地址

    SS:SP

    任意时刻,SS:SP指向栈顶元素

     

    二:第一个程序

      1:使用dos的edit编辑,现在看界面果然烂

      2:源程序分为两部分

         伪指令:由编译器所执行的指令

                 Ps:xxx segment

                     .....

                     xxx ends//成对使用的指令,定义了一段

                     

                    end//汇编程序结束的标记

                  

                     asume//假设某一段寄存器和程序的某一个用segment.....ends定义的段相关李娜

         汇编指令:有对应的机械码的指令,可以被编译为指令,最终为cpu为执行

      3:标号代表了一个地址,类似codesg,最终会在编译和连接中处理成一个段地址

      4:程序的返回:command将程序载入内存,再将CPU交个程序,程序运行完后,将权利返回command

             语法:mov ax,4c00h

                   Int 21h(别问我为啥,不知道啦) 

    二:编译,连接,调试

          工具:masmlinkdebug

           用法:

                 假设:已经有源程序文件 c: 1.asm

                 1:  输入:masm c: 1;

                     在当前路径下生成1t.obj,跳过生成的.lst,.crf,两个文件

                 2:输入:link t1;//不同代码可能还得连接其他文件

                     在当前路径生成 1.exe,忽略中间文件.map,.lib 的生成

               3:输入:debug t1.exe

                  注意路径,进入debug的程序之中,基本操作没有变,使用u可以查看所有的程序,t运行一个单句,运行到int 21时,使用p

  • 相关阅读:
    linux 系统中 获取环境变量、 获取环境变量+自定义变量
    即兴写作系统
    php 解决旧系统 查出所有数据分页的类
    面向过程与面向对象编程思想的区别
    c语言入门(一)c语言基础
    清数据库日志
    使用数据集时错误:超时时间已到。在操作完成之前超时时间已过或服务器未响应。
    数据库 可疑 解决方法
    [转].Net线程问题解答
    查询重复记录数
  • 原文地址:https://www.cnblogs.com/dilidingzhi/p/3947867.html
Copyright © 2011-2022 走看看