码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言基础3

时间:2015-06-16 00:00:06      阅读:384      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!