. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  求助各位朋友帮忙看下哪里错了  [已解决] 回复[ 5次 ]   点击[ 307次 ]  
asmlearn
[帖 主]   [ 发表时间:2010-08-11 18:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-08-11 18:20
ASSUME CS:CODE 
        CODE SEGMENT 
                MOV AX,0FFFFH  
                MOV DS,AX ;设置段地址 
                MOV AX,6   
                MOV [6],AX ; 给 FFFF:6赋值 
                MOV BX,[6] ; 将刚才的值传到BX 
                MOV CX,2   ; 循环次数 
              F:ADD BX,BX  ;累加 
                LOOP F 
                MOV AX,4C00H 
                INT 21H 
        CODE ENDS 
END 

编译的时候出错,但是我检查不出错误来
masmaster
[第1楼]   [ 回复时间:2010-08-11 20:01 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
1,FFFFH地址是不让写入
2,mov [6],ax ;因为没有声明数据段,所以应改成: mov ds:[6],ax
txrwxwlz
[第2楼]   [ 回复时间:2010-08-11 20:28 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2010-08-11 20:09
MOV AX 0FFFFH  ;是把0FFFF地址内的内容送给AX
你的本意应该是:MOV AX #0FFFFH 吧,所以你的程序应该是如下:
ASSUME CS:CODE  
        CODE SEGMENT  
                MOV AX,#0FFFFH   
                MOV DS,AX ;设置段地址  
                MOV AX,#0006H    
                MOV [0006H],AX ; 给 FFFF:6赋值  
                MOV BX,[0006H] ; 将刚才的值传到BX  
                MOV CX,#0002H   ; 循环次数  
              F:ADD BX,BX  ;累加  
                LOOP F  
                MOV AX,4C00H  
                INT 21H  
        CODE ENDS  
END
asmlearn
[第3楼]   [ 回复时间:2010-08-11 20:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-08-11 18:20
为什么 在段地址前面加上#还有就是 我已经设置了 DS的值了 MOV DS,AX;为什么还要在 
mov [6],ax 这里改成 mov ds:[6],ax (我试过了 这个是正确的)
asmlearn
[第4楼]   [ 回复时间:2010-08-11 21:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-08-11 18:20
我知道为什么错了 因为 DEBUG 理解 mov ax,[0] ;将 DS:0 里面的数据放到 ax
                   而 masm汇编编译器 理解为 将 0放到 ax 所以 以上代码错误!
asmlearn
[第5楼]   [ 回复时间:2010-08-11 21:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-08-11 18:20
此贴由 贴主 于 [ 2010-08-11 21:38 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(masmaster):4分   2楼(txrwxwlz):4分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved