汇编语言中问题7.7这样编可以吗?如果不可以该怎么改
assume cs:codesg,ds:datasgdatasg segment
db 'ibm '
db 'dec '
db 'dos '
db 'vax '
datasg ends
codesg segment
start: mov ax, datasg
mov ds, ax
mov bx, 0
mov cx, 4
s: mov al,
and al, 11011111b
mov ,al
mov dx, cx
mov cx, 3
inc bx
loop s
mov cx, dx
add bx, 16
loop s
codesg ends
end start 这样不行的 会陷入死循环的
assume cs:codesg,ds:datasg,ss:stack
stack segment
db 32 dup (0)
stack ends
datasg segment
db 'ibm '
db 'dec '
db 'dos '
db 'vax '
datasg ends
codesg segment
start: mov ax, datasg
mov ds, ax
mov ax,stack
mov ss,ax
mov sp,32
mov bx, 0
mov cx, 4
push cx
mov cx,3
push cx
mov bp,sp
s:mov cx,
mov al,
and al, 11011111b
mov ,al
inc bx
dec word ptr
loop s
mov cx,
mov word ptr ,3
dec word ptr
add bx, 13
loop s
mov ax,4c00h
int 21h
codesg ends
end start
能正确执行 没写注释 自己看吧 你的程序在执行loop后,cx减1了,每次循环里的cx都赋值3(mov cx,3),那么loop什么时候能执行完呢? 叮叮当当牛仔 发表于 2012-6-10 21:29 static/image/common/back.gif
你的程序在执行loop后,cx减1了,每次循环里的cx都赋值3(mov cx,3),那么loop什么时候能执行完呢?
对额,嘿嘿,我再改改…… rencaixiaomeng 发表于 2012-6-8 11:03 static/image/common/back.gif
这样不行的 会陷入死循环的
assume cs:codesg,ds:datasg,ss:stack
恩恩,我试试…… 不行呢,这样都死循环了:L
页:
[1]