. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  讨论一下关于SS的使用  [待解决] 回复[ 1次 ]   点击[ 353次 ]  
woaiballack
[帖 主]   [ 发表时间:2010-09-11 12:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-06-04 13:13
在实验五的第5题中,我使用了SS作为数据段C的段地址寄存器,程序编译是没有问题的,可是,我总是有些不放心,在没有用到堆栈的程序中,可不可以使用SS寄存器来操作数据,对于程序的运行有没有影响?希望大家能够帮帮我,解决我的疑虑。谢谢
下面附上我的程序,跟踪运行了,是没有错误的,得到的结果也和题目要求的一样。(因为我是用masm6.15编译的,所以将C改成了C1)
assume cs:code

a segment
    db 1,2,3,4,5,6,7,8
a ends
b segment
    db 1,2,3,4,5,6,7,8
b ends

c1 segment
    db 0,0,0,0,0,0,0,0
c1 ends

code segment

start: mov ax,a
      mov es,ax
      
      mov ax,b
      mov ss,ax
      mov ax,c1
      mov ds,ax

      mov bx,0
      mov ax,0
      mov cx,8

   s: mov al,es:[bx]
      add al,ss:[bx]
      mov [bx],al
      inc bx
      loop s

      mov ax,4c00h
      int 21h
code ends
end start
dmdwnf
[第1楼]   [ 回复时间:2010-12-25 21:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-25 18:59
应该可以,ss也是段寄存器,不一定非得定义栈的时候使用。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved