那么自然 发表于 2012-6-10 22:17:15

甲鱼老师..来看看咯.

本帖最后由 那么自然 于 2012-6-11 02:03 编辑

assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
db 20h
datasg ends
codesg segment
start: mov ax,datasg
       mov ds,ax
    mov ax,0b872h
    xor si,si
    xor di,di
    mov cx,16
    mov es,ax
s:    mov dl,ds:
    mov es:,dl
    add di,2
    inc si
    loop s
   
    xor di,di
    xor si,si
    mov cx,16
    mov dl,10h
d:    mov es:,dl
    add di,2
    loop d
   
    mov ax,4c00h
    int 21h
codesg ends
end start

这代码是实验九里面的.我自己写的一段.我发觉代码没问题啊,怎么显示不出来呢?我单步跟踪总觉得这里不对.mov es:,dl.存的值是错的..我把dl改成al.成功运行过一次.我以为是dl不能给es赋值,我又把dl改成al,但是后来不论改成什么都显示不出东西来了.帮我看看哇..很纠结..难道是编辑器有问题?我用的是你的pad++啊.


静雨纷纷 发表于 2012-6-10 22:17:16

你前面加一个 assume cs:codesg ````就ok了···
···   在debug 下 用——g 32···   就出来了····

那么自然 发表于 2012-6-11 02:09:00

本帖最后由 那么自然 于 2012-6-11 02:26 编辑

静雨纷纷 发表于 2012-6-10 23:43 http://bbs.fishc.com/static/image/common/back.gif
你前面加一个 assume cs:codesg ````就ok了···
···   在debug 下 用——g 32···   就出来了·· ...

前面有的哈..刚才粘贴漏了.
好像.每次要关一次电脑才能显示出来一次样    ...
刚才我你的的方法.显示出来了...-g 32.为什么要用这种方法啊? 我直接在cmd里执行程序,偶尔才显示一次...这是为什么啊?

静雨纷纷 发表于 2012-6-11 14:12:43

呵呵···我也是菜鸟一个啊·
当时我也遇到了你这个问题···· 有个大神 告诉我的··说用--t会发生中断···让我用--g·
我感觉应该是我们现在还没学到位··所以不知道为什么··· 等往后学 应该慢慢就会明白的吧···

鎵贁爺閅 发表于 2012-6-13 18:33:23

学习一下,争取早日成为大虾
页: [1]
查看完整版本: 甲鱼老师..来看看咯.