汇编语言——第四章课后总结

Posted hongyezhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言——第四章课后总结相关的知识,希望对你有一定的参考价值。

1.源程序

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

①伪指令:没有对应的机器指令,最终不被CPU所执行

如上述程序segment和ends是一对成对使用的伪指令,可以用来定义一个段;一个有意义的汇编程序中至少有一个段,这个段用来存放代码。

②end

end是一个汇编程序结束的标记,ends是“end segment”这里要记清楚

③assume

假设某一段寄存器和程序中的 某一segment...ends定义的段相关联。

2. 源程序中的“程序”

汇编指令:指源程序中最终由计算机执行、处理的指令或数据(汇编指令经编译、连接后转变为机器码)

3. 标号

一个标号指代了一个地址。例如code在segment的前面作为一个段的名称,此名称最终会被编译、连接处理为一个段的段地址

4. 程序的结构

 ①先定义一个段,名称为code

 ②在此段中写入汇编指令

 ③指出程序在何处结束,利用end

 ④用assume将段和其功能相关联的段寄存器联系起来

5. 程序返回

一个程序结束后,将CPU的控制权交还给使它得以运行的程序

上述程序中的

mov ax,4c00h

int 21h

这两条指令实现的功能就是程序的返回

6.程序编辑,编译,连接和执行

以上述程序为例:

①编写源程序,保存为test.asm:

技术分享图片

 ②编译,打开masm汇编编译器,进入目录运行上述保存文件:

技术分享图片

③我们已经通过编译得到obj文件,再通过连接得到exe文件:

技术分享图片

④最后执行这个文件:

技术分享图片

7.程序执行过程的跟踪

① 使用debug观察程序运行过程:debug p1.exe

②用r查看各个寄存器:CX存放的是程序的长度

③dos系统中.exe文件加载的过程:

    (1)程序加载后,ds保存程序所在内存区的段地址,偏移地址为0,此程序所在的内存区的地址为ds:0;

    (2)此内存区的前256个字节中存放的是PSP(程序段前缀——记录了返回地址,程序数据大小等信息,dos用来和程序通信)

    (3)从256个字节处向后的空间存放的是程序,物理地址为 ds+10h(ds和cs的值总相差10h,ds=cs+10h)

④可以用U命令查看其他指令

⑤用t单步执行,会显示“Program terminated normally”

⑥程序加载的顺序:(1)command加载debug,debug加载p1.exe;返回的顺序:(2)从p1.exe中的程序返回到debug,从debug返回到command

以上是关于汇编语言——第四章课后总结的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言 王爽 第四版 课后检测点 课后实验 包括解释 持续更新~~

汇编语言 王爽 第四版 课后检测点 课后实验 包括解释 持续更新~~

第四章课后题

第四章课后习题

Java第四章课后整理

R语言基础题及答案——R语言与统计分析第四章课后习题(汤银才)