BadTudou 2014-12-14 07:27 采纳率: 0%
浏览 1922

汇编:在代码中使用数据,见代码

编程计算以下8个数据的和,结果存放在ax寄存器中
0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h
结果为: 4BDB
P123, 《汇编语言(第2版)》,王爽

8个数据定义在代码段cs,我的想法是将cs赋值给ds,然后使用bx做偏移地址"add ax, ds:[bx]",但是书上是直接使用"add ax, cs:[bx]",运行之后导致结果不相同。

【1.运行结果是:ax = 4BD8】

    assume cs:code

    ;代码段
    code segment

    ;定义8个字型数据
    dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h


    ;设置偏移地址
    mov bx, 0

    ;设置循环次数
    mov cx, 8

    ;将ax寄存器清零
    mov ax, 0

        s:  add ax, cs:[bx]
    add bx, 2
    loop s

    ;正常结束程序
    mov ax, 4c00h
    int 21h
    code ends
    end

【2.运行结果是:ax =5EAE】

    assume cs:code

    ;代码段
    code segment

    ;定义8个字型数据
    dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h


    ;将代码段设置为数据段
    mov ax, cs
    mov ds, ax

    ;设置偏移地址
    mov bx, 0

    ;设置循环次数
    mov cx, 8

    ;将ax寄存器清零
    mov ax, 0

        s:  add ax, ds:[bx]
    add bx, 2
    loop s

    ;正常结束程序
    mov ax, 4c00h
    int 21h
    code ends
    end

  • 写回答

3条回答 默认 最新

  • threenewbee 2014-12-14 11:28
    关注

    这两个答案都是错的,正确答案是4BDB

    评论

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制