汇编语言学习笔记6

包含多个段的程序
    以前编写的程序我们都用到了一个段-代码段。要是程序需要其他空间来存放数据的话,我们就需要定义其他的段了。我们以前的操作的数据信息都是从内存单元里取得,并没有操作我们想要操作的数据,定义其他的段就是给我们提供一个个的空间来存放我们自己想要操作的信息。
    接下来尝试将数据,代码,栈放入不同的段\(^o^)/
    我们这样做就是为了将代码,数据,栈段分开,避免导致混乱,尤其是随着编程能力的提高我们用到的数据,代码,栈等越来越多,合理的定义不同的段空间更能优化我们的程序。下面举个例子。。


assume cs:code ,ds:data,ss:stack; 我们定义了代码段,数据段,堆栈段,并分别把他们与相应的段寄存器相连接
data segment      ;这就是我们定义的数据段的内容里边存放了8个数据
  dw  1,2,3,4,5,6,7,8   ;此处dw是定义一个字单元的意思,,向系统                                       ;申请8个字单元
data ends 
stack segment   ;每个段的定义格式以及使用格式都是一样的
dw  0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack 
mov ss,ax   ;此处注意我们在关联ss时一定把堆栈指针寄存                                     ;器一块赋值否则会报错
mov sp,16
mov ax,data
mov ds,ax

mov cx,8
mov bx,0
s:     push [bx]
      add bx,2
      loop s
      mov bx,0
      mov cx,8
 s1:pop [bx]
     add bx,2
     loop s1
     mov ax,4c00h
     int 21h
code ends 
end start
此段 代码的意思就是将数据段的数据入栈然后在出站,从而我们体会不同段空间的使用方法。呵呵今天的任务完成喽。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值