汇编语言检测点3.1ax为啥等于2662?
题上也没有说是字节型数据还是字型数据,ax为啥等于2662?实在想不明白啊 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
也就是说寄存器是16位的必须要传送16位数据? 萌辉 发表于 2013-7-28 14:22 static/image/common/back.gif
也就是说寄存器是16位的必须要传送16位数据?
是的 本帖最后由 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
这是对的,换算成物理地址是一样的00010h
0000:0010 = 00010
0001:0000 = 00010
" 1:0000 " 是等於 2662 .这种说法是错的。1:0000是一个内单元的地址(一个字节),里面的值是62h. 到时所有汇编的题全会给出答案的 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 作出来答案就是这样, 欠你的幸福 发表于 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
你写这个没用的,每个人的都不一样的 这个 mov ax,【0】 是把 偏移地址为 他们两个存储单元的数字都放到ax中了
用小甲鱼的话说就是,你只有60斤,不能找一个120斤的女朋友,否则晚上睡觉会出人命的。就是说,存储器的位数必须与要赋予的值的位数相同。 什么时候能给出标准答案? 学习学习再学习
页:
[1]