汇编语言基础4

来源:互联网 发布:越狱铃声软件 编辑:程序博客网 时间:2024/06/07 04:02

                                                                                                   汇编语言基础4

一个包含多个段的程序:

ds寄存器一般存放数据段的段地址,cs:ip这两个寄存器一般存放的是代段的具体地址,es 段一个可以使用的临时存放变量的寄存器,SS:SP一般存放的就是栈的具体地址,前者位栈的段地址后者为栈的偏移地址。一般程序都有代码段,数据段,文本段,我们希望CPU 从代码段读取指令,通过使用栈来对数据段的数据进行修改,那么程序的本质就能够体现了。


这个程序是将0123H 0456H 这两个数据进行交换

       assume cs:code ,ds:data,ss:stack   伪指令定义三个段地址

data segment

dw 0123h,0456h                      定义数据段

data ends

stack segment                                  定义栈段

dw 0,0

stack ends

start:  mov ax,stack

  mov ss,ax                                 

                  mov sp,16                             给栈段赋上具体的地址

  mov ax,data

                  mov ds,ax

                  push ds:[0]

                  push ds:[2]

                  pop   ds:[2]

    pop   ds:[0]

                                                               使用栈来进行交换

       mov  ax,4c00h

       int 21h

code ends

end start

     




0 0