您的位置:首页 > 其它

汇编语言学习小总结

2013-04-12 10:58 211 查看
重要知识的总结,方便自己以后翻阅复习,在知识连贯性上穿插性较大,注意。

1.基本知识

内存单元:每个内存单元是 1个字节=8位=2个16进制数 “A5H” 则可以表示一个内存单元的值

字:就是在CPU内部传输,处理,暂时存放的最大数据大小。学习的汇编都是以8086的CPU为基础,在8086的CPU当中内部都是16位来传输的。所以之后我们所说都是1字=2字节=16位

存储:都是小端存储(LittleEndian),低位数据放在低位。

20位:因为地址总线每次传输的是20位,但是CPU内部是16位,这样就诞生了后面很多偏移的概念了。(= =为什么不直接设计成16位传输呢)

2.寄存器

注意命令

mov ds,1000H

mov bx,0001H

mov ax,[bx] 这句会将内存地址为 10001H和10002H的16位都赋值给ax,因为ax是16位的

2.1通用寄存器

ax:存放临时数据

bx:放偏移量 使用[bx]实际上是 (bx)+(ds)

cx:和Loop有关,循环的次数

dx:

2.2 段地址寄存器

ds:[bx] 表示一个数据段

cs:IP 表示代码段

ss:sp 表示栈段,sp始终指向栈顶。注意push 先进行sp-2 再将寄存器的内容传送到内存单元。而pop则先将内存单元的内容给寄存器后进行sp+2

3.debug

u 查看CS:IP处开始的所有汇编指令(将机器指令转换成汇编指令)

r 查看修改寄存器

a 以汇编指令的形式在内存中写入指令

d 查看内存中的内容

t 执行一条指令

4.程序基本结构

assume cs:mycode            //assume伪指令定义一个代码段 叫mycode

mycode segment

start:  mov ax,2000H      //start标号定义程序开始
mov ds,ax
mov bx,1000H
mov ax,[bx]
inc bx
inc bx
mov [bx],ax
inc bx
inc bx
mov [bx],ax
inc bx
mov [bx],al
inc bx
mov [bx],al

mov ax,4c00H
int 21H

mycode ends   //代码段的结束 end segment

end start    //程序结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: