|
主题 : : 请问:ds:[bx] 和 ds:bx 有什么区别?还有debug下如何区别给[bx]加段前缀? [待解决] |
回复[ 8次 ]
点击[ 634次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-06-25 11:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:0
注册日期:2011-05-30 14:33 |
debug 下:
mov ds:[bx],al
报错! | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-06-28 19:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-25 21:11 |
|
|
|
|
|
[第2楼]
[ 回复时间:2011-08-17 11:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-06 18:12 |
ds:[bx]此处的偏移地址是指DS*16+BX处的值,而DS:BX中的偏移地址是BX的值 | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-08-17 12:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59 |
|
|
|
|
|
[第4楼]
[ 回复时间:2011-11-07 19:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-10-28 08:28 |
|
|
|
|
|
[第5楼]
[ 回复时间:2012-11-25 21:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-11-25 20:23 |
|
|
|
|
|
[第6楼]
[ 回复时间:2012-11-25 23:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59 |
debug下肯定可以加段跨越前缀,但是是换一种方式。
比如
es[:不确定是不是有这个":"]
mov [bx],ax
即先输入段跨越前缀,再写指令。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2012-11-26 11:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-11-25 20:23 |
回复:[第6楼]
------------------
我想说的是debug中不可能存在以下这种形式吧
mov al,ds:[0]
而在汇编程序中,因为masm编绎器不能正确识别 mov al,[0]
masm编绎器会把指令 mov al,[0]当作 mov al,0处理
所以在编写汇编程序的时候要加段前缀 mov al,ds:[0]
同时如果我们直接在debug中使用A命令写入汇编指令的时候会写成 mov al,[0]或者 mov al, [bx]
而不能写成 mov al,ds:[0],这样写的话debug会报错。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2013-04-14 14:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-04-13 11:19 |
那么在DEBUG中要使用ES的段地址是不是要先送入到DS中才可以? | | |