汇编语言习题一道,求高手指点!

来源:互联网 知识问答 2026-10-24 13:44:52 8

你编写的汇编有太多错误啊,等着我给你列出来!

1、首先,主函数没有调用main子程序,在code段中添加call main ;

2、定义数据段不对:

data segment use16

buf db 50

db

db 50 dup(0)

data ends ;

3、然后,查找时,应该从缓冲区第一个字符开始,也就是buf定义的内存的地址的第三个字节开始,第一个字节存放缓冲区大小,第二个存放实际输入的字符数,所以:

lea si, buf+2 ;

4、你输入的字符串尾并没有'$',所以要自己添加:

mov bl, buf+1

mov bh, 0

mov byte ptr buf+2[bx], '$' ;

5、在子程序find1中,输出的是字符个数,所以要使用2号功能调用,还有,你要事先转换成ASCII码才可以被识别,在A3后添加:

add cx, '0'

mov dl, cl

mov ah, 2

int 21h ;

6、同样,子程序find2中,也要跟上面一样,在B3后添加:

add cx, '0'

mov dl, cl

mov ah, 2

int 21h ;

7、最后,最好在调用find1和find2之间输出换行或空格,这样显示效果好点(你自己加吧)

(还有我忘说明了,我写的输出只能是字符数在10个以内的,如果超过9个,那么还要改输出语句,这个就太复杂了,建议调用已经写好的标准十进制输出子程序,这个自己在书本中找吧!)

国药准字Z53021087 -- 小儿麻甘颗粒 -- 云南楚雄云中制药有限责任公司

批准文号 国药准字Z53021087

原批准文号 ZZ-3479-滇卫药准字(1996)第002866号

药品本位码 86905638000036

药品本位码备注

产品名称 小儿麻甘颗粒

上一篇:可转债交易规则

下一篇:怎么查自己有没有交医保

需要摆账亮资?咨询在线客服,3分钟快速回复!