汇编语言子程序问题

小生刚学汇编,使用子程序是出现不解问题:打算使用寄存器作为入口参数就例如movbx,offsetnum传bx到了子程序后打算用[bx]调用原num变量但是始终不成功请问是... 小生刚学汇编,使用子程序是出现不解问题:

打算使用寄存器作为入口参数

就例如 mov bx,offset num
传bx 到了子程序后打算用[bx]调用原num变量
但是始终不成功

请问是怎么回事
部分源程序:
;数据段:
string db 'abcdef'
;代码段:
mov bx,offset string
;子程序:
;要逐个比较string中的字符
cmp [bx][di],'a'
;另外使用加减法这个指令也不行
add [bx][di],20h
sub [bx][di],20h
展开
 我来答
文刀舍予
2009-12-06 · TA获得超过5715个赞
知道小有建树答主
回答量:1196
采纳率:0%
帮助的人:0
展开全部
楼主劳驾您把代码贴出来好么?
对的方式一般只有一个,但错误的方式是有很多的,你想让别人猜你是怎么错的么?
======================================================================
这个错误我看到不同人犯不下10次了- -,我也犯过这个错误

如果指令的操作数无法确定数据的位数的话,就必须加ptr
举个例子:
比如cmp [bx][di],al
在指令中al是8位的,所以这条指令的数据可以确定是8位的,因为mov,cmp等的多个操作数的位数都必须是一样的,所以操作数中只要有一个位数可以确定,就不用加ptr,如果像你那样的话,就必须这样写:
cmp byte ptr [bx][di],'a'
类似的,如果是字型的数据的话,就用word ptr
肥皂一块
2009-12-06
知道答主
回答量:18
采纳率:0%
帮助的人:12.2万
展开全部
你用的是什么啊?C?C++?你不说怎么看啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式