四象轮回 发表于 2014-5-21 08:24:03

数据定义问题

我想定义一个空间大小为10的a来接收键盘输入的字符串。
a db 10dup(0)的方法程序出错
a db 10,0,10dup(0)就对了
为什么第一种方法会错?第二种方法的第一个10和0是什么意思?

swsm 发表于 2014-5-21 08:24:04


data segment
        a db 10 dup (0)
data ends
code segment
        assume cs:code, ds:data

start:
        mov ax, data
        mov ds, ax
       
        mov ah, 4ch
        int 21h
code ends
        end start
;上面的那个程序是用来说明a db 10 dup (0) 没错的,你的可能是()要是英文输入的
;a db 10,0,10dup (0) 这个10 是键盘缓冲区能存储的最大数据个数, 0是实际存储数据个数

传说。 发表于 2014-5-21 09:55:20

What‘s the fox say ?

815116820 发表于 2014-5-21 13:00:12

swsm 发表于 2014-5-21 10:25 static/image/common/back.gif
;上面的那个程序是用来说明a db 10 dup (0) 没错的,你的可能是()要是英文输入的
;a db 10,0,10dup (0) 这 ...

你这是汇编啊!!!

swsm 发表于 2014-5-21 14:56:45

815116820 发表于 2014-5-21 13:00 static/image/common/back.gif
你这是汇编啊!!!

我这是汇编!呀呀呀呀呀呀!

四象轮回 发表于 2014-5-21 19:06:47

那个代表实际存储个数的0有什么作用?第一种定义方法为什么不能接收英文?有什么不对?求再解答一下,拜托了!

四象轮回 发表于 2014-5-21 19:08:21

swsm 发表于 2014-5-21 14:56
我这是汇编!呀呀呀呀呀呀!

那个代表实际存储个数的0有什么作用?第一种定义方法为什么不能接收英文?有什么不对?求再解答一下,拜托了!

swsm 发表于 2014-5-21 22:51:16

四象轮回 发表于 2014-5-21 19:08 static/image/common/back.gif
那个代表实际存储个数的0有什么作用?第一种定义方法为什么不能接收英文?有什么不对?求再解答一下,拜托 ...

我现在才上网,抱歉!
第一种方法是正确的,我的回答是,dup(0) 这个()要是英文输入下的()这是语法问题,呵呵
键盘缓冲区的实际存储个数会显示数据的个数,这个在你的程序中可以利用啊,好处还是有的,
页: [1]
查看完整版本: 数据定义问题