汇编语言学习小总结

重要知识的总结,方便自己以后翻阅复习,在知识连贯性上穿插性较大,注意。

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    //程序结束

 

posted @ 2013-04-12 10:58  KaimingWan  阅读(218)  评论(0编辑  收藏  举报