| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1144 人关注过本帖
标题:初学汇编,各位进来看看~!
只看楼主 加入收藏
限量版猪头
Rank: 2
等 级:论坛游民
威 望:1
帖 子:165
专家分:30
注 册:2006-2-5
结帖率:0
收藏
 问题点数:0 回复次数:1 
初学汇编,各位进来看看~!
本人看王爽的汇编语言一书学习汇编的,做到第七章一个练习时,出现问题。

编程:将data段中每个单词的前四个字母改为大写字母

 

assume cs:code,ds:data,ss:stack
stack segment
  dw 0,0,0,0,0,0,0,0
stack ends
data segment
  db '1.  display     '
  db '2.  brows       '
  db '3.  replays     '
data ends
code segment
start: mov ax,stack
  mov ss,ax
  mov sp,16
  mov ax,data
  mov ds,ax
  mov cx,3
  mov bx,0
s1: push cx
  mov cx,4
  mov si,4
s2: mov al,[bx+si]
  and al,11011111b
  mov [bx+si],al
  inc si
  loop s2
  add bx,16
  pop cx
  loop s1
  mov ax,4c00h
  int 21h

code ends
end start

而我觉得栈太大了,浪费了,就将栈改小了,DEBUG却出错了

assume cs:code,ds:data,ss:stack

stack segment
    dw 0,0            //原来是dw 0,0,0,0,0,0,0,0
stack ends

data segment
    db '1.display'
    db '2.brows'
    db '3.replays'
data ends

code segment
start:    mov ax,stack
    mov ss,ax
    mov sp,4        //原来是16
    mov ax,data
    mov ds,ax
    mov cx,3
    mov bx,0
s1:    push cx
    mov cx,4
    mov si,4
s2:    mov al,[bx+si]
    and al,11011111b
    mov [bx+si],al
    inc si
    loop s2
    add bx,16
    pop cx
    loop s1
    mov ax,4c00h
    int 21h
code ends
end start

还请高手指点迷津

[[it] 本帖最后由 限量版猪头 于 2008-5-7 12:38 编辑 [/it]]
搜索更多相关主题的帖子: mov 汇编 stack segment data 
2008-05-07 12:10
dcg_0_0
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-21
收藏
得分:0 
回复
debug需要使用到栈空间保存信息
比如t命令 需要保存cs,ip信息

你的程序可以简化些的.也可以不自定义栈,使用默认栈 可以使用 4[bx][si]格式等

www. 完全对王爽 汇编语言进行支持的汇编学习网站.很多朋友在这里学习
2008-05-07 15:41
快速回复:初学汇编,各位进来看看~!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014730 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved