• 汇编语言(王爽)学习记录_第四章


    第四章 第一个程序

    4.1 一个源程序从写出到执行的过程

    1.编写汇编语言(用编辑器进行汇编语言的编写)

    2.对源程序进行编译连接(对源程序进行编译,产生目标文件;再连接程序对目标文件进行连接,生产可执行文件)

    3.执行可执行文件中的程序(执行文件需要将机器码和数据载入内存,然后CPU执行)

    4.2 源程序

    例如源程序:assume cs:codesg

          codesg segment

              mov ax,0123H

              mov bx,0456H

              add ax,bx

              add ax,ax

              mov ax,4c00H

              int 21H

          codesg ends

          end

    1.伪指令

      汇编语言中的两种指令:伪指令,汇编指令。汇编指令有对应的机器码,伪指令没有对应机器码不被CPU执行而被编译器执行。

      A.××× segment·····×××ends是成对出现的伪指令,用来定义一个代码段。

      B.end(不是ends)是一个汇编程序结束的标志。

      C.assume(假设)功能:将指定用途的段和相关的段寄存器关联起来。比如上面的代码将cs和定义的代码段codesg联系起来。

    2.源程序中的“程序”

      这里的源程序指最终由计算机执行、处理的指令或数据(最后的二进制机器码)。

    3.标号

      标号例如上面的codesg就想名称一样。

    4.程序的结构

      1首先是定义段 abc segment ·····abc  ends,2在里面写汇编指令把·····换成汇编指令,3指出何处结束end,4用assume将段寄存器与abc联系起来。

    5程序的返回

      举例:一个p2程序要执行必须有一个正在执行的p1程序把p2加载入内存后,才能将CPU交给p2,p2随之运行,p2结束后返回控制权给p1这个返回过程就是:程序返回     最上面的例子中的mov     ax,4c00H  int 21H这两条指令实现的功能就是程序返回。

    6.语法错误和逻辑错误

    语法错误就是编译器发现的错误,运行的结果与预期的不同就是逻辑错误。

    4.3 编辑源程序

    这里开始就是动手实操了,我用的win10环境,看了很多博客在win10编写汇编语言都是用DOSBOX和MASM挂两篇博客汇编 之 win10 下安装dosbox 和 MASMWin10(64位)安装汇编环境(MASM) 按照两篇博客装教程很快可以入手实操!   注意:我按照两篇博客内容整下来在编译 连接时没问题但是不能运行.exe文件应该时不兼容问题,无赖只好又找到一款好用的工具代替用VSCode风格的编辑器写MASM汇编语言注意注意注意:(重要的说三篇还是去用DOSBOX和MASM了解熟悉编译连接这个过程在用这个集成环境)

    我用的notepad++编辑如图 

    4.4 编译

    4.5连接

    4.6 以简化的方式进行编译和连接

    4.7 运行

    上面4步在大佬博客里都有。

    4.8 谁将可执行文件中的程序装载进入内存并使用它运行?

    问题4.1:执行1.exe时是windows的cmd将1.exe加载到内存

    问题4.2:运行完后返回到cmd继续执行cmd

    4.9 程序执行过程的跟踪

    用大佬给的MASMACAU  debug打开(那个小黄鸭)

     程序在装入内存时会先装入psp,DOS用来和程序进行通讯。256字节即10H

     

    程序执行到 int 21 时需要在debug中用p命令

     实验3

    编写程序直接debug运行即可。

     

     

  • 相关阅读:
    HDU 1009 FatMouse' Trade
    HDU 2602 (简单的01背包) Bone Collector
    LA 3902 Network
    HDU 4513 吉哥系列故事——完美队形II
    LA 4794 Sharing Chocolate
    POJ (Manacher) Palindrome
    HDU 3294 (Manacher) Girls' research
    HDU 3068 (Manacher) 最长回文
    Tyvj 1085 派对
    Tyvj 1030 乳草的入侵
  • 原文地址:https://www.cnblogs.com/Te-mgl/p/14045053.html
Copyright © 2020-2023  润新知