敬水仙 发表于 2013-1-23 21:34:00

al 编译问题


stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display......'
db '2. brows........'
db '3. replace......'
db '4. modify.......'
datasg ends
codesg segment
start:mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,0

mov cx,4
s0: push cx
mov si,0
mov cx,4
s:mov al,
and al,11011111b
mov ,al
inc si
loop s

add bx,16
pop cx
loop s0

mov ax,4c00h
int 21h
codesg ends
end start


编译时在这里 s:mov al, 和 mov ,al 报错
把al 换成ax 就可以编译过
这是为什么呢?

NGtailang 发表于 2013-1-23 22:16:27

stacksg segment

dw 0,0,0,0,0,0,0,0

stacksg ends
这个为16位的,bx指向的是这里。所以要为16位

54085256 发表于 2013-1-23 22:25:23

ax=bx
ax是ah和al组成
那么al能放的下ax吗

敬水仙 发表于 2013-1-24 22:38:45

54085256 发表于 2013-1-23 22:25 static/image/common/back.gif
ax=bx
ax是ah和al组成
那么al能放的下ax吗

确实不行!

hanye332 发表于 2013-3-16 22:38:24

我个人感觉啊,有什么不对的请指出 !解释有些不对,个人感觉!BX指向的应该是DB的偏移地址!! 栈空间应该是和CX有关系! 所以我觉得你的解释有些不合理的地方!! 我也像不明白为什么,如果你的答案是对的!! 哪就是我的思路错了!!
页: [1]
查看完整版本: al 编译问题