|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
学了一部分小甲鱼老师的零基础学习汇编语言视频,在编程编译时发现一个问题,如下程序:
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
db '1. display ' ;16个字节单元
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov bx,0
mov ax,stacksg
mov ss,ax
mov sp,16
mov cx,4
s0: push cx
mov si,0
mov cx,4
s: mov al,[bx+si+3]
and al,11011111b
mov [bx+si+3],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
如果把[bx+si+3]改成[bx+3+si]或者[3+bx+si]时,编译出错,怎么回事?是这种书写格式错误还是这种格式只能mov ax,[bx+3+si],不能mov al,[bx+3+si] ?还是其他问题?
迷惑ing........
你要写成这种形式:mov al,[bx+3+si] 吗?
编译器不认识这种形式,你需要指定移动几个字节就行了,
比如说改成 mov al,byte ptr[bx+3+si]就好了
|
|