汇编 菜鸟求助,谢谢。
如下是一程序的代码
DATA SEGMENT
strn db 'abc','#' ;//(问题1)定义字符串,为什么后面加逗号和‘#’?为什么不连起来 strn db 'abc#'
leng db 0
DATA ENDS
LEA DI,strn;//(问题2)将strn的有效地址放入变址寄存器中,这个有效地址是什么?指令执行后的 加不加括号的 DI 和 〔DI〕各是什么值?为什么加括号?
INC DI;//(问题3)目标操作数加1,是DI的什么加1了?
[解决办法]
友情帮顶,不要让此贴沉下
[解决办法]
DATA SEGMENT
strn db 'abc','#' ;//(问题1)定义字符串,为什么后面加逗号和‘#’?为什么不连起来 strn db 'abc#'
leng db 0
DATA ENDS
可以连起来,在写一些特殊字符的时候,可能要分开写比如回车换行符:
"hello world",10,13,0
LEA DI,strn;//(问题2)将strn的有效地址放入变址寄存器中,这个有效地址是什么?指令执行后的 加不加括号的 DI 和 〔DI〕各是什么值?为什么加括号?
就是strn在内存中的偏移地址.
DI表示是DI中的值,后者是将DI的值当成一个地址,该地址指向的内容,
类似于: int i=0,*p=&i
INC DI;//(问题3)目标操作数加1,是DI的什么加1了?
DI的值加1了,:
mov di,0
inc di ;now di == 1