| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1136 人关注过本帖
标题:我是一个菜鸟!我有一个问题!
取消只看楼主 加入收藏
lasonberg
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-8-10
收藏
 问题点数:0 回复次数:0 
我是一个菜鸟!我有一个问题!
刚接触汇编,就有了很多问题,但痛并快乐着。。。。
问题:编程计算下面8个数据的和,所得结果存入寄存器AX中(0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H)。
由于当时我还没学到DW(当然现在会用了!)所以用了笨蛋的方法做的!程序写的很笨,大家不要笑哈!
assume cs:code , ds:data
data segment
mov ax,0020H
mov ds,ax
mov ds:[0],0123H
mov ds:[2],0456H
mov ds:[4],0789H ;这里是笨方法
mov ds:[6],0abcH
mov ds:[8],0defH
mov ds:[10],0fedH
mov ds:[12],0cbaH
mov ds:[14],0987H
data ends
code segment
mov ax,0
mov dx,0
mov bx,0
mov cx,8
s:mov dl,ds:[bx]
inc bx
mov dh,ds:[bx]
add ax,dx
mov dx,0
inc bx ;这里也是!!!
loop s
mov ax,004cH
int 21H
code ends
end
编译运行的时候,观察AX,总是发现当运行到代码段 mov ax,0的时候,直接跳过去了并没有编译!并且观察0020:0000内存单元的数据发现是C3 而不是23,而我把 (mov ax,0)放到数据段中末尾就好了,如:
assume cs:code , ds:data
data segment
mov ax,0020H
mov ds,ax
mov ds:[0],0123H
mov ds:[2],0456H
mov ds:[4],0789H
mov ds:[6],0abcH
mov ds:[8],0defH
mov ds:[10],0fedH
mov ds:[12],0cbaH
mov ds:[14],0987H
   mov ax,0
data ends
  这是为什么呀?是编程思想一开始就是错误的么?还是CPU当中有其他的规定或者什么的?希望各位高手能解开我的疑问,我刚学汇编不久希望能得到鼓励与解惑,谢谢!
搜索更多相关主题的帖子: 寄存器 mov data segment 
2007-08-18 18:04
快速回复:我是一个菜鸟!我有一个问题!
数据加载中...
 
   



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

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