首页 > 编程语言 > 详细

汇编语言基础3

时间:2015-06-15 23:58:33      阅读:453      评论:0      收藏:0      [点我收藏+]

                                                                                                   汇编语言基础3

一个包含多个段的程序:

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

     




汇编语言基础3

原文:http://blog.csdn.net/zmrlinux/article/details/46508537

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!