注册 登录
编程论坛 汇编论坛

汇编搞得我头疼,大侠看看这是为什么?

赵疯子 发布于 2013-08-19 11:05, 1270 次点击
只有本站会员才能查看附件,请 登录

上面有步 sub bx,[2]
为什么是bx-1122 而不是bx-2211或者bx-22?他的读取按什么划分?
10 回复
#2
赵疯子2013-08-19 11:23
为什么要拖入高字节呢?假如高字节为0的话,取什么值呢?
#3
zklhp2013-08-19 12:00
mov ax, 1000H
mov ds, ax
mov ax, 11316    ;ax = 02c34H
mov [0], ax      ;10000H 34
                 ;10001H 2c
mov bx, [0]      ;bx = 02c34H
sub bx, [2]      ;bx = 02c34H - 01122H = 01B12H
mov [2], bx      ;10002H 12
                 ;10003H 1B

但你问的是什么意思我就不知道了

还有就是题目问了cx 但好像cx没出现啊。。


#4
zklhp2013-08-19 12:01
如果这个你不会做 建议你再看一遍书。。。
#5
赵疯子2013-08-19 18:24
回复 4楼 zklhp
我的意思是说,为什么读取内存字是要从当前地址的高位读取?
#6
赵疯子2013-08-19 18:26
ax为16位寄存器,因此它会向内存中的目标地址上的低地址取低8位给ax的低八位,好吧,我知道了
#7
zklhp2013-08-20 16:06
以下是引用赵疯子在2013-8-19 18:24:57的发言:

我的意思是说,为什么读取内存字是要从当前地址的高位读取?

小尾模式和大尾模式 X86体系的存储方式是小尾

也叫大小端 这个书里肯定讲

http://en.

或者你看这个。。
#8
wp2319572013-08-20 16:10
z版厉害
#9
赵疯子2013-08-20 16:42
回复 7楼 zklhp
谢谢  谢谢,我现在是看寄存器的大小来确定取多少字
#10
mfwwxd2013-10-17 21:52
z版厉害
#11
Alar302013-10-27 19:07
还是要强化基本功哇。。。
1