你编写的汇编有太多错误啊,等着我给你列出来!
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
药品本位码备注
产品名称 小儿麻甘颗粒
以上就是关于汇编语言习题一道,求高手指点!全部的内容,包括:汇编语言习题一道,求高手指点!、国药准字z53021087、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!