四象轮回 发表于 2014-5-11 17:51:58

输出保存好的数据

代码如下,希望实现输出定义在a中的字符串,分成2行输出第一行gg 123,第二行kk 456。但好像全是错误,求大神指正。
assume cs:code,ds:data
data segment
a db 'gg 123$kk 456$';定义数据
data ends
code segment
mov ax,data   
mov ds,ax
mov si,0
mov cx,2
s:mov ds,offset a :9号功能显示
add si,7
mov ah,9
int 21h
mov dl,0ah   ;换行
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
loop s
code ends
end


xiaosawanjava 发表于 2014-5-11 17:51:59

assume cs:code,ds:data
data segment
a db 'gg 123$kk 456


;定义数据
data ends


code segment
start:
        mov ax,data   
        mov ds,ax
       
        mov cx,2
        mov bx,0
       
        ;第一行
        s: mov dx,offset a
        add dx,bx
        mov ah,9
        int 21h
       
        ;换行
        mov ah,02h
    mov dl,0ah
    int 21h

        ;定位到一个单词
        add bx,7

        loop s
       
        mov ax,4c00h
        int 21h
code ends
end start


青玄 发表于 2014-5-11 19:36:39

支持楼上的回答!我想你的问题应该解决了吧!:lol:

四象轮回 发表于 2014-5-11 23:20:46

xiaosawanjava 发表于 2014-5-11 18:51


谢谢你的解答,还有一些问题。
Add ds,bx加的是什么?偏移地址不是要加si吗?

四象轮回 发表于 2014-5-11 23:26:08

xiaosawanjava 发表于 2014-5-11 18:51


谢谢你的解答,还有一些问题。
add ds,bx加的是什么?偏移地址不是要加si吗?直接加7能指向7个字节之后吗?

四象轮回 发表于 2014-5-12 09:29:38

青玄 发表于 2014-5-11 19:36
支持楼上的回答!我想你的问题应该解决了吧!

大神,也请教你一个问题。我这个定义的a的空间是多大?还能往a里面插入第三组数据吗?

青玄 发表于 2014-5-12 09:39:55

四象轮回 发表于 2014-5-12 09:29 static/image/common/back.gif
大神,也请教你一个问题。我这个定义的a的空间是多大?还能往a里面插入第三组数据吗?

你的空间的大小应该是12个字节的大小,可以往a里面插入第三组数据,不过代码也要相应的修改一下就行了!

四象轮回 发表于 2014-5-12 10:20:42

青玄 发表于 2014-5-12 09:39
你的空间的大小应该是12个字节的大小,可以往a里面插入第三组数据,不过代码也要相应的修改一下就行了!

只是添加插入的代码,不用修改定义吗?如果我定义的这个字符串的空间只有12个字节大小,那就应该没有空间插入第三组数据啊。求修改定义。

青玄 发表于 2014-5-12 10:33:08

四象轮回 发表于 2014-5-12 10:20 static/image/common/back.gif
只是添加插入的代码,不用修改定义吗?如果我定义的这个字符串的空间只有12个字节大小,那就应该没有空间 ...

恩恩,如果你想在a里面加入数据的话,那么就直接加是可以的,不过在代码索引的时候,要注意一下,如果想再开辟空间用代码插入的话,那也是可以的!比如开辟一个里面有数据的b,把b的数据放到a里面就实现了一个插入的操作!

四象轮回 发表于 2014-5-12 11:22:38

青玄 发表于 2014-5-12 10:33
恩恩,如果你想在a里面加入数据的话,那么就直接加是可以的,不过在代码索引的时候,要注意一下,如果想再 ...

我再回去试一下,谢谢你!
页: [1]
查看完整版本: 输出保存好的数据