grasswin 发表于 2016-10-11 16:28:43

8.6实现, 有个疑问, 请教大家

本帖最后由 grasswin 于 2016-10-12 10:33 编辑

dw 占2个字节, 直接定义 dw 137 , 是否正确, 编译可通过, 可执行,
但查看时, 前后的字符串显示正确, 只有数字不显示(下方有图): DECKen Oslen...(.PDP
替换完成时, 数字也是显示不对.
请问这样是否写错了?

下面是全部代码:

assume cs:code, ds:data

data segment
        db 'DEC'
        db 'Ken Oslen'
        dw 137
        dw 40       
        db 'PDP'       
data ends

code segment

start:       
        mov ax, data
        mov ds, ax
        mov bx, 0       

        mov word ptr .12, 38
        add word ptr .14, 78

        mov si, 0
        mov byte ptr .10h, 'V'
        inc si
        mov byte ptr .10h, 'A'
        inc si
        mov byte ptr .10h, 'X'

               
        mov ax, 04cch
        int 21h

code ends

end start

淡淡的哪个什么 发表于 2016-10-11 22:42:28

顶下 还没学到这边 我才到2.1 我也遇到不会了 发帖了 你能帮我看看么

兰陵月 发表于 2016-10-12 08:47:27

没有错,数字是不会在右边显示的,右边能显示的是ASCII码~

同理,程序运行后,更改数据后也不会在右边显示所谓的数字。

grasswin 发表于 2016-10-12 10:17:44

兰陵月 发表于 2016-10-12 08:47
没有错,数字是不会在右边显示的,右边能显示的是ASCII码~

同理,程序运行后,更改数据后也不会在右边显 ...

这样啊, 多谢了, 那如何才能验证数字是否计算正确, 并显示出来???请指教

兰陵月 发表于 2016-10-13 08:35:35

grasswin 发表于 2016-10-12 10:17
这样啊, 多谢了, 那如何才能验证数字是否计算正确, 并显示出来???请指教

你如果只是想知道数值变化情况,可以需要了解的数字放在一个寄存器里,debug时可以跟踪查看寄存器里值的变化就知道了。

你如果想要显示在屏幕上,建议学完实验9,之后便会操作。

更正一下~ASCII码的数字并不一定不会显示~~我说错了。。这里更正。

grasswin 发表于 2016-10-13 14:16:14

兰陵月 发表于 2016-10-13 08:35
你如果只是想知道数值变化情况,可以需要了解的数字放在一个寄存器里,debug时可以跟踪查看寄存器里值的 ...

明白了, 真是非常感谢!!!{:10_279:}{:10_279:}{:10_279:}

Huang1234 发表于 2018-1-24 16:49:48

你前面定义数据段时,可以按下面做,再用DEBUG 执行一下,就明白了
data segment
db 96 dup (0)
db 'DEC'
db 'Ken Olsen'
dw 22h
dw 40h
db 'PDP'
页: [1]
查看完整版本: 8.6实现, 有个疑问, 请教大家