注册 登录
编程论坛 汇编论坛

帮忙看一个程序,关于数组赋值的。

howarezhao 发布于 2008-01-09 21:57, 1904 次点击
数组A有5个元素,数组B有7个元素,把数组A与数组B相同的元素放在C数组上,在把数组C打印出来。
DATAS SEGMENT
    StringA  dw 2,3,4,5,6
    StringB  dw 3,4,5,6,7,8,9
    StringC  dw 6 dup (?)
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:              
    MOV AX,DATAS                    ;把StringA,StringB,StringC的偏移地址分别赋值给[si],[di],[bx]
    MOV DS,AX
    lea si,StringA
    mov es,ax
    lea di,StringB
    lea bx,StringC
   
    mov dl,5                           
    cld
bj_1:mov ax,[si]             ;把数组A第一个元素于数组B所有元素比较
     mov cx,7
     repnz scasw              
     jz  addele               ; 若相同,则跳到addele
     add si,2
     dec dl
     jnz bj_1
     jmp exit
addele:mov ax,es:[di]         ;把相同的数值赋值给C数组
       mov [bx],ax
       add si,2
       add bx,2
       jmp bj_1
exit:mov [bx],'$'             ;把'$'赋值给C数组的最后一个元素
    lea dx,StringC
    mov ah,9                  ;9号中断把C数组打印出来
    int 21h
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
但是C数组却看不到东西,希望高手帮我看看。
0 回复
1