. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  执行调试后 数据并未写入内存  [待解决] 回复[ 4次 ]   点击[ 281次 ]  
lanry2008
[帖 主]   [ 发表时间:2010-12-09 21:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 16:12
assume cs:codesg

codesg segment
        
        mov ax,0
        mov ds,ax
        
        mov bx,200
        mov al,0
        
        mov cx,5
        
 s: mov [bx],al
    inc bx
    inc al
    loop s
    
    mov ax,4c00h
    int 21h
codesg ends

end
------------以上为程序------------------------

AX=0003  BX=00CB  CX=0002  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0000  ES=1415  SS=1425  CS=1425  IP=000F   NV UP EI PL NZ NA PE NC
1425:000F 43            INC     BX
-t

AX=0003  BX=00CC  CX=0002  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0000  ES=1415  SS=1425  CS=1425  IP=0010   NV UP EI PL NZ NA PE NC
1425:0010 FEC0          INC     AL
-t

AX=0004  BX=00CC  CX=0002  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0000  ES=1415  SS=1425  CS=1425  IP=0012   NV UP EI PL NZ NA PO NC
1425:0012 E2F9          LOOP    000D
-d
0000:0200                    00 00-00 00 00 00 00 00 00 00         ..........
0000:0210  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0220  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0230  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0240  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0250  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0260  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0270  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0000:0280  00 00 00 00 00 00                                 ......
----------------------以上为调试信息-------------------------------------

为什么在内存 200 处还是为0呢?
lanry2008
[第1楼]   [ 回复时间:2010-12-09 21:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 16:12
还有的就是,第五章的实验4里的第二题:
 s: mov [bx],bl
    inc bl
    loop s

在执行 mov [bx],bl的时候出错了。答案mov bl,0 也是错误的,我觉的,因为bh可能包含数据。我改成 mov bx,0出错的。求解。。
zaixuexi
[第2楼]   [ 回复时间:2010-12-09 22:51 ]   [引用]   [回复]   [ top ] 
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
1.DEBUG里的数据是16进制的
你代码里写的200(10进制)=CB(16进制),请注意你上面的BX=00CB而不是200
把你代码里的mov bx,200 -> mov bx,200h
2.把你整个代码贴上,我再看下
lanry2008
[第3楼]   [ 回复时间:2010-12-11 22:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 16:12
assume cs:codesg

codesg segment
        
        mov ax,2
        mov ds,ax
        
        mov bl,0
        
        mov cx,64
        
 s: mov [bx],bl
    inc bl
    loop s
    
    mov ax,4c00h
    int 21h
codesg ends

end
-----------以上为第二个代码-----------

谢谢楼上。原来是16进制的内存表示方式,了解了。
zaixuexi
[第4楼]   [ 回复时间:2010-12-12 12:02 ]   [引用]   [回复]   [ top ] 
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
mov ax,2 -> mov ax,20h
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved