试验4,第三题的问题求助
assume cs:codecode segment
mov ax,code;code为所填写的数据
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,18h ;18h为所填写的数据
s: mov al,
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
答案上的这个code是什么意思?为什么不用CS呢??上课时没见过 mov ax,code 这种用法……
段名就相当于一个标号,它代表了段地址,所以指令“mov ax,code”的含义就是将名称为“code”的段的段地址送入ax。这是我在书上抄来的,我也在消化中,我抄的这段是在131页,131页中写的是mov ax,data,我想意识应该是一样吧。 是啊 !我也想问一下 我用DEBUG测试了下用CS 也可以调试的过 COde 跟cs 效果一样的吧 应该都是获取当前你机器上的当前代码段的地址 书上是这么说的“一个段中的数据的段地址可由段名代表”,再加上甲鱼老师上课时说的“把data看成一段数据就好了,CPU不认识data,但CPU认识DS和AX,通过AX间接使ds=data,CPU就认识data了,知道它代表段地址了。” 古语说得好,读书百遍其意自现,这才是第一次复习就有更深的理解了,课本第79页对标号有明确的解释“汇编源程序中,除了汇编指令和伪指令外,还有一些标号,比如“codesg”。一个标号指代了一个地址。比如codesg在segment的前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理为一个段的段地址。” 可见标号在经过编译器处理后已经成为了一个段的段地址,CPU根本就看不到标号 {:10_256:} 灌水为了鱼币打扰了啊找了个很久之前的 打扰 打扰····· hello hello2 split append count str open sorry 不懂,{:10_269:}
页:
[1]