【汇编】第一个汇编程序(学习笔记)

一、程序从编写到执行的过程

1、编写

Notepad++ / UltraEdit + 汇编语言

2、编译、连接

MASM.EXE:编译产生目标文件

LINK.EXE:连接,产生可执行文件

连接作用:源程序分为多个子程序编译后,连接在一起。或程序调用其他库的子程序

可执行文件

1、程序:汇编语言的机器码

2、数据:源程序中定义的数据

3、相关描述信息

3、执行

将程序和数据加载到内存中,并初始化

二、源程序

assume cs:codesg
codesg segment
start:	mov ax,0123H
		mov bx,0456H
		add ax,bx
		add ax,ax
		
		mov ax,4c00h
		int 21h
codesg ends
end

1、汇编指令:有对应机器码,被执行

2、伪指令:(除了汇编的部分)不被CPU执行,是由编译器执行的命令,编译器根据伪指令进行编译工作

3、段:段名 segment段名 ends 是成对使用的伪指令。一个汇编程序是由多个段组成

4、段的作用:存代码、存数据、作栈空间

5、end是汇编的结束标记(伪指令)

6、assume:关联假设。假设某一段寄存器和程序中的某一个用segmert…ends定义的段相关联,编译程序可以将段寄存器和其一个具体的段相联系

7、标号:代替了一个地址

8、程序返回:DOS是单任务操作系统,程序执行结束后,将CPU的控制权还给DOS

;中断机制
mov ax,4c00h
int 21h

三、编写程序

源文件:*.asm

编译:masm 1.asm

连接:link 1.obj

执行:1.exe

编译连接也可以用:ml 1.exe

四、exe执行原理

1、CMD运行

2、cmd将1.exe加载进内存

3、cmd把cpu的CS:IP指向1.exe入口

4、运行结束,把CS:IP指回cmd

【汇编】第一个汇编程序(学习笔记)_第1张图片

五、操作系统的外壳

操作系统提供一个Shell(外壳)程序,用户使用shell操作操作系统

DOS中有一个cmd.exe,是DOS中的命令解释器,也就是DOS的Shell

六、Debug

Debug将1.exe加载入内存,没置入口,但Debug利用中断指令,不放弃CPU的控制

debug 1.exe

t:执行下一条代码

R:查看寄存器地址

P:执行int 21

你可能感兴趣的:(汇编,学习,笔记)