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

求教一个简单的汇编语言编程问题

xiangya 发布于 2008-07-05 01:15, 2484 次点击
编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。
8 回复
#2
zklhp2008-07-05 22:45
.model small
.stack 200h
.data
    
    M dw -1h,0h,33h,1h,-10h, 15 dup(-1h)
    P dw 20 dup(0)        ;正数 bx
    N dw 20 dup(0)        ;负数 dx
    buffer db 'P:  ,N:  ',13,10,'$'

    
    
.CODE
START:
    mov ax,@data
    mov ds,ax
    xor ax,ax
    mov bx,ax
    mov dx,ax
    lea si,M
    mov cx,20d
    
@loop:
    
    lodsw
    or ax,ax
    js @n
    jz @F
    mov WORD ptr ds:[P+bx],ax
    inc bx
    jmp @f
@n:
    mov WORD ptr ds:[N+dx],ax
    inc dx

@@:
    loop @loop

    mov ax,bx
    mov cl,10d
    div cl
    add ah,30h
    mov ds:[buffer+3h],ah
    xor ah,ah
    div cl
    add ah,30h
    mov ds:[buffer+2h],ah
    
    mov ax,dx
    div cl
    add ah,30h
    mov ds:[buffer+8h],ah
    xor ah,ah
    div cl
    add ah,30h
    mov ds:[buffer+7h],ah
    
    
    lea dx,buffer
    mov ah,9h
    int 21h
    
    ;暂停,任意键关闭
    mov ah,1
    int 21h
    mov ah,4ch     ;结束,可以修改al设置返回码
    int 21h
    
END START
#3
zklhp2008-07-05 22:46
为什么输出是

 ☻02 ☻ 17☻
#4
xiangya2008-07-06 02:01
上面用的是单片机汇编语言还是8086汇编语言啊
#5
xiangya2008-07-06 02:03
能不能用8086汇编语言啊…………
#6
zklhp2008-07-06 02:30
[bo][un]xiangya[/un] 在 2008-7-6 02:03 的发言:[/bo]

能不能用8086汇编语言啊…………


打击偶学习汇编的积极性…………  连8086汇编都算不上 555555

偶的代码真这么烂???  偶学汇编没几天的
#7
zklhp2008-07-06 02:31
偶也不会单片机汇编呀
#8
liehu2322008-07-15 21:06
mov ah,9h
    int 21h
输出的是字符串程序把数字当ASCC码 所以输出相应的符号
#9
zklhp2008-07-20 02:12
[bo][un]liehu232[/un] 在 2008-7-15 21:06 的发言:[/bo]

mov ah,9h
    int 21h
输出的是字符串程序把数字当ASCC码 所以输出相应的符号


buffer db 'P:  ,N:  ',13,10,'$'

到底该怎么写?
1