2301_78955411 2023-11-17 17:03 采纳率: 100%
浏览 9
已结题

如图汇编类,搞不懂为什么cx为0044H,AX为2000H

img


为什么Cx为0044H,如下面的数据段定义,分析下列指令执行后寄存器的内容。

  • 写回答

3条回答 默认 最新

  • 新华 2023-11-17 18:40
    关注
    
    DATA SEGMENT AT 2000H
    ORG 30H
    VAR1 DW 10 DUP(?)
    VAR2 DB 10
    DATA ENDS
    

    VAR1 是一个由 10 个字(2字节)组成的数组,ORG 30H 表示 VAR1 的起始地址是 2000H + 30H,即 2030H。
    VAR2 是一个由 10 个字节组成的数组,位于 VAR1 后面,所以其起始地址是 2030H + sizeof(VAR1),即 2030H + 20H = 2050H。
    接下来,我们分析给定的指令执行后寄存器的内容:

    
    MOV AX, SEG VAR1   ; AX=2000H
    

    这一条指令将 VAR1 的段地址(2000H)加载到 AX 寄存器中。

    
    MOV BX, OFFSET VAR1 ; BX=0030H
    

    这一条指令将 VAR1 的偏移地址(2030H)加载到 BX 寄存器中。

    
    MOV CX, OFFSET VAR2 ; CX=0044H
    

    这一条指令将 VAR2 的偏移地址(2050H)加载到 CX 寄存器中。

    
    MOV DL, VAR2        ; DL=0AH
    

    这一条指令将 VAR2 的值(第一个字节,10)加载到 DL 寄存器中。

    所以,执行这些指令后,寄存器的内容应该是:

    AX:2000H
    BX:0030H
    CX:2050H
    DL:0AH
    因此,CX 的内容是 2050H,而 AX 的内容是 2000H。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月17日

悬赏问题

  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥20 spring boot集成mqtt的使用问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错