春卷の爱 发表于 2014-2-19 08:33:06

第九章 操作符offset 问题9.1的机器码

第九章 转移指令原理问题9.1:
assume codesg
codesg segment
s:    mov ax,bx
      mov si,offset s
      mov di,offset s0
      mov ax,cs:
      mov cs:,ax
s0:nop
      nop
codesg ends
end s
编译连接后用debug查看指令:

请问绿色箭头指示的指令CS: 是什么?对应一个字节的机器码2E,我想查8086的机器码表,发现那个表太复杂了看不懂

春卷の爱 发表于 2014-2-19 08:34:40

还有学习汇编的感觉太好了,完全明白机器在干什么,不戴套的节奏啊

春卷の爱 发表于 2014-2-19 08:44:20

原来是段寄存器名。改成
      mov ax,ds:
      mov es:,ax
结果如下,DS出现,因为是默认数据段,ES的机器码是26. 所以在处理内存寻址的时候,编译器会在指令前面单独生成一个段地址标号,方便CPU查找。

页: [1]
查看完整版本: 第九章 操作符offset 问题9.1的机器码