汇编基础实验3

最近在看王爽写的《汇编语言》,知识描述十分清晰,很容易入门。每章后面都是实验,下面就是我将把这些实验一一重复,记录下来。

这个实验的目的大概就是让初学者学会使用DEBUG进行调试,顺带介绍一下DOS运行程序的基本原理。实验代码如下:

ASSUME: CS:codesg
codesg SEGMENT
  MOV AX,2000H
  MOV SS,AX
  MOV SP,0
  ADD SP,10
  POP AX
  POP BX
  PUSH AX
  PUSH BX
  POP AX
  POP BX

  MOV AX,4C00H
  INT 21H
codesg ENDS
END

这段代码本身没多大意义,重点需要学习的是MASM和DEBUG的使用。

MASM两个基本的命令是:

MASM 根据ASM文件编译出OBJ文件。

LINK 输入OBJ文件,链接输出EXE文件。

可执行程序被COMMAND加载入内存的过程中一共做了两个事情:

1. 找一个空闲空间,偏移地址为0的地址A,建立PSP段,大小为256字节,这个段用于DOS和程序进行通信。

2. 把代码拷贝到A*16+256地址处,CS=A+16,IP=0,DS=A。

原文地址:https://www.cnblogs.com/licb/p/experiment3.html