+ -
当前位置:首页 → 问答吧 → I/O程序设计实验题(刚学汇编,不太清楚)求解答

I/O程序设计实验题(刚学汇编,不太清楚)求解答

时间:2010-12-09

来源:互联网

I/O程序设计实验题:
设数组ARRAY包含元素8、7、6、5、4、3、2、1。编程对其任一元素N都进行1+2+…+N的计算,结果存入数组RESULT中。 
要求:
①.用中断方法实现1+2+…+N的计算。中断类型号用65H。
②用子程序方法把RESULT中的数据按十进制形式显示

作者: lilei89702241   发布时间: 2010-12-09

安装程序:
Assembly code

d:\MASM>type int65.asm
assume  cs:code
code    segment
start:
        mov ax,cs
        mov ds,ax
        mov si,offset sum
        mov ax,0
        mov es,ax
        mov di,200h
        mov cx,offset sum_end-offset sum
        cld
        rep movsb
        mov ax,0
        mov es,ax
        mov word ptr es:[65h*4],200h
        mov word ptr es:[65h*4+2],0
        mov ah,4ch
        int 21h
;驻留程序,CX为N值
;结果存在AX中
sum:
        mov ax,0
        add ax,1
        add ax,cx
        mul cx
        shr ax,1
        iret
sum_end:
        nop
code    ends
end     start

d:\MASM
>
测试程序:
Assembly code

assume    cs:code,ds:data,ss:stack
data    segment
array    dw    8,7,6,5,4,3,2,1
data    ends
stack    segment stack
    db     64 dup (0)
stack    ends
code    segment
start:
    mov ax,data
    mov ds,ax
    xor ax,ax
    mov bx,offset array
    mov cx,array[bx]
    int 65h
    call h2d
    mov ah,4ch
    int 21h
h2d    proc
    mov bx,10
    xor dx,dx
    mov cx,0
d:
    cmp ax,10
    jb d1
    div bx
    add dl,30h
    push dx
    xor dx,dx
    inc cx
    jmp d
d1:
    add al,30h
    push ax
    inc cx
d2:
    pop dx
    mov ah,2
    int 21h
    loop d2
    ret
h2d    endp    
code    ends
end    start


测试结果:

d:\MASM>int65

d:\MASM>test
36
d:\MASM>

作者: masmaster   发布时间: 2010-12-09