您的位置:首页 > 其它

汇编语言学习笔记(4)

2009-11-06 17:57 239 查看
45.第一个完整汇编源程序:

e.g:

assume cs:code

code segment

start: mov ax,0123H

mov bx,0456H

add ax,bx

add ax,ax

mov ax,4c00H

int 21H

code ends

end

a)汇编指令:有对应的机器码

b)伪指令:给编译器执行的指令

在例子中出现了三种伪指令:

XXXXX segment

XXXXX ends

segment和ends是一对成对使用的伪指令.写可以被编译的汇编程序时必须要用到的一对伪指令.segment和ends的功能是定义一个段,segment说明一个段开始,ends说明一个段结束.一个段必须有一个名称来标识,使用格式为:

code(段名) segment //定义一个段,段名为code

code(段名) ends //名称为code的段到此结束

46.一个汇编程序是由多个段组成的,这些段被用来存放代码,数据或当作栈空间来使用.一个源程序中所有被计算机处理的信息:指令,数据,栈等可以被划分到不同段中.

47.end:是一个汇编程序结束标记,在编译过程中,如果碰到伪指令end,就结束编译.----不要混淆end(用于结束编译)和ends(用于结束段).

48.assume:假设,它假设某一段寄存器和程序中的某一个用segment...ends定义的段相关联.通过assume说明这种关联,在需要的情况下,编译程序可以将段寄存器和某一个具体的段相联系.记着用assume可以将有特定用途的段和相关寄存器关联起来即可.

49.标号:如code,一个标号指代了一个地址
.code在segment前面,做为一个段的名称,这个段的名称最终将被编译,连接程序处理为一个段的段地址.

50.程序的结构:

a)定义一个段;(segment...ends)

b)在段中写入汇编命令;

c)指出在哪个地方结束;(end)

d)code被当作代码段来使用,所以和cs寄存器关联起来.

assume cs:code

code segment

mov ax,2

add ax,ax

add ax,ax

code ends

end

51.程序返回:一个程序结束后,将CPU控制权交还给使它得以运行的程序,这个过程称为程序返回.----How...?

在程序末尾添加返回的程序段:

mov ax,4c00H

int 21H

可以实现程序的返回.

52.a)段结束:段名 ends 伪指令 编译器执行

b)程序结束: end 伪指令 编译器执行

c)程序返回:mov ax,4c00H int 21H 汇编指令 CPU执行

53.汇编程序过程:编程-->编译-->连接-->加载-->内存中的程序-->运行.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: