首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于loop循环,该怎么处理

2012-09-24 
关于loop循环是王爽的汇编语言113面的一道题目向内存0:200-0:23f中依次传入数据0-63(3fh)以下是我的两种写

关于loop循环
是王爽的汇编语言113面的一道题目
向内存0:200-0:23f中依次传入数据0-63(3fh)

以下是我的两种写法

Assembly code
assume cs:codecode segment        mov ax,20h        mov ds,ax        mov cx,63     mov bx,0      s:mov ds:[bx],bx        inc bx    loop s        mov ax,4c00h        int 21hcode endsend        



Assembly code
assume cs:codecode segment        mov ax,20h        mov ds,ax        mov cx,63        s:mov bx,cx    mov ds:[bx],bx     loop s        mov ax,4c00h        int 21hcode endsend        

大家编译运行下试试 我不知道是不是我机器的问题 第二种有问题
每次loop一次 之前写入的数据就变成0了

[解决办法]
=.= 你每次都是bx减一了,然后呢bx从63开始~高位写的00,低位为63,然后再次bx为0062了,然后高位的00把上次位置写的63覆盖了,
[解决办法]
mov ds:[bx],bx 改成 mov ds:[bx],bl

[解决办法]
探讨
=.= 你每次都是bx减一了,然后呢bx从63开始~高位写的00,低位为63,然后再次bx为0062了,然后高位的00把上次位置写的63覆盖了,

[解决办法]
就是操作数类型没有搞清楚,对于初学者,建议再用个8位的寄存器装载要存入的数据,这样做更清楚。
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov cx,63 
mov bx,0
mov al,0
s:mov ds:[bx],al
inc al
inc bx
loop s

mov ax,4c00h
int 21h
code ends
end


assume cs:code
code segment
mov ax,20h
mov ds,ax
mov cx,63
mov al,63
s:mov bx,al
mov ds:[bx],al
dec al
loop s

mov ax,4c00h
int 21h
code ends
end


[解决办法]
加油呀同胞

热点排行