萌辉 发表于 2013-7-28 13:46:36

汇编语言检测点3.1ax为啥等于2662?

题上也没有说是字节型数据还是字型数据,ax为啥等于2662?实在想不明白啊

Dardy 发表于 2013-7-28 13:46:37

mov ax, 相当于 mov ax,ds:
看这个ds:指向内存单元 1:0000 ,(上一行ds传送了一个1进去)
0001:0000 就是62h这个字节的地址。0001:0000 和0000:0010都换算为物理地址是一样的:00010h

内存操作需了解要操作的起始地址和要操作的长度。
mov ax,;ds:给的是一个起始地址,mov中在寄存器和内存间传送数据,其长度与寄存器保持一至。
且两者间传送时,内存高地址对应寄存器高位,低地址对应低位。

mov ax,   把1:0000 (即物理地址00010h)为为起始的两个字节传送到AX; 0001:0000到AL, 0001:0001到AH

萌辉 发表于 2013-7-28 14:22:39

也就是说寄存器是16位的必须要传送16位数据?

Dardy 发表于 2013-7-28 14:54:10

萌辉 发表于 2013-7-28 14:22 static/image/common/back.gif
也就是说寄存器是16位的必须要传送16位数据?

是的

kit1858644 发表于 2013-7-28 23:04:49

本帖最后由 kit1858644 于 2013-7-28 23:19 编辑

Dardy 发表于 2013-7-28 14:54 static/image/common/back.gif
是的
我可以問一下嗎?

在3.1題中只有 "0000:0000 和 0000: 0010 " 2個地址, 為什麼可以知道" 1:0000 " 是等於 2662?
是否?:

0000:0010 = 00010

0001:0000 = 00010

Dardy 发表于 2013-7-28 23:45:42

这是对的,换算成物理地址是一样的00010h
0000:0010 = 00010
0001:0000 = 00010

" 1:0000 " 是等於 2662 .这种说法是错的。1:0000是一个内单元的地址(一个字节),里面的值是62h.

怡静 发表于 2013-7-29 02:09:28

到时所有汇编的题全会给出答案的

欠你的幸福 发表于 2013-8-4 23:33:42

mov ax,0001   ax=0001
mov ds,ax   ax=0001ds=0001
mov ax,ax=018b
mov bx,ax=018bbx=7001
mov ax,bxax=7001bx=7001
movax,   ax=018b
mov bx,bx=0070
add ax,bxax=01fbbx=0070
add ax,ax=08b4
我不知道对不对,但我是用debug 作出来答案就是这样,

9天 发表于 2013-8-10 18:17:47

欠你的幸福 发表于 2013-8-4 23:33 static/image/common/back.gif
mov ax,0001   ax=0001
mov ds,ax   ax=0001ds=0001
mov ax,ax=018b


你写这个没用的,每个人的都不一样的

machine1 发表于 2013-9-7 20:54:38

这个 mov ax,【0】 是把 偏移地址为 他们两个存储单元的数字都放到ax中了
用小甲鱼的话说就是,你只有60斤,不能找一个120斤的女朋友,否则晚上睡觉会出人命的。就是说,存储器的位数必须与要赋予的值的位数相同。

wys751211 发表于 2013-10-12 12:39:54

什么时候能给出标准答案?

菜鸟一个a 发表于 2013-12-24 21:59:53

学习学习再学习
页: [1]
查看完整版本: 汇编语言检测点3.1ax为啥等于2662?