+ -
当前位置:首页 → 问答吧 → 区分奇偶数并存入同一数据段不同缓冲区问题

区分奇偶数并存入同一数据段不同缓冲区问题

时间:2011-11-08

来源:互联网

在内存数据区buf中存有20个无符号字节数据,要求把其中的奇数、偶数分开,分别送至同一数据段的二个缓冲区,奇数缓冲区自100H开始的odd变量中,偶数缓冲区自200H开始的even变量中。要求使用数据段定义变量。
Assembly code
assume cs:code,ds:data
data segment
        org 100H
        odd db ?
        org 200H
        eve db ?
        org 500H
        buf    db 25h,23,33,1,2,23,1,34,56,1,2,34,22,88,40,34,12,11,19,21
data ends
code segment
start:    mov ax,data
        mov ds,ax
        mov si,0
        mov di,0
        mov bl,0
        mov dx,0
        mov cx,20
s1:        mov bl,word ptr buf[si]
        inc si
        mov bh,bl
        and bh,1h
        cmp bh,0
        jz s2
        jmp s3
s2:        mov odd[di],bl
        inc di
s3:        xchg dl,di
        mov eve[di],bl
        inc di
        xchg di,dl
        loop s1
code ends
        end start
        
        

执行之后没有达到效果,求教...

作者: simpleapples   发布时间: 2011-11-08

1: 奇偶缓冲区定义太小,应该每个都要预留20字节的空间
 odd db 20 dup (?)
 eve db 20 dup (?)

2:
下面源/目的操作数类型不匹配
 mov bl,word ptr buf[si]
s3: xchg dl,di
  xchg di,dl

作者: masmaster   发布时间: 2011-11-08

热门下载

更多