码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言第四章总结

时间:2018-11-05 23:45:58      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:前缀   asm   完成   des   区域   指令   地址   假设   标识   

终于到了自己编写一个完整的汇编语言源程序的时刻,生成可执行文件,但这要经历一个漫长的过程

下面将知识点总结如下:

一、汇编语言源程序中包含两种指令,一种是汇编指令(有对应的机器码,可被编译为机器指令,最终被CPU执行),一种是伪指令(无对应机器码,不能被CPU执行)

二、汇编源程序举例:

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

其中伪指令segment和ends成对使用,定义一个段,分别说明开始和结束,codesg是段标识,可自定义,最后将被编译masm、连接link为段地址

end为汇编程序结束标记

assume为假设某一寄存器和程序中某一个被定义的段相关联

mov ax,4c00h
  int 21h

这两条指令实现程序返回(程序结束后,将CPU控制权交还给使它得以运行的程序)

三、编辑源程序时:1.用edit写好汇编程序 2.用masm编译得到目标文件 3.用link连接目标文件得到可执行文件(其中地址不想为默认可直接设置) 4.运行程序

在连接和运行程序之间还有一个加载过程,其具体是DOS种的command.com程序找到文件名,设置CS:IP入口,command停止,CPU运行程序,程序结束后逆向退回

四、程序跟踪时可以用debug 文件名.exe

debug可以将程序加载入内存,设置CS:IP入口,但不放弃对CPU控制

cx寄存器为程序的长度

五、加载时,ds先找内存,再在内存前256个字节中创建前缀PSP数据区域进行程序通讯,所以设置的CS:IP的段地址CS=DS+10H

加载顺序:command加载debug,debug加载文件.exe,程序结束逆向返回

六、对

  int 21h

汇编程序执行时用p命令统一完成(t命令会将其分条完成,但是过程复杂)

汇编语言第四章总结

标签:前缀   asm   完成   des   区域   指令   地址   假设   标识   

原文地址:https://www.cnblogs.com/msag/p/9912124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!