6.07.asm

来自「设有十个学生的成绩分别是76」· 汇编 代码 · 共 83 行

ASM
83
字号
DATAS SEGMENT
    ;此处输入数据段代码  
    scores dw 76,69,84,90,73,88,99,63,100,80
    num dw 10
    S6 dw ?
    S7 dw ?
    S8 dw ?
    S9 dw ?
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
        dw 20 dup(?)
     tos label word
STACKS ENDS

CODES SEGMENT
main proc near
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
 ;set up SS & SP register
    mov ax,stacks
    mov ss,ax
    mov sp,offset tos
 ;set up stack for return
    push ds  ;save old data segment
    sub ax,ax  ;put zero in ax
    push ax   ;save it on stack
 ;set DS register to current data segment
    mov ax,datas
    mov ds,ax   ;into ds register
 ;put address into stack
    mov bx,offset scores
    push bx
    mov bx,offset num
    push bx
    mov bx,offset S6
    push bx
    
    call near  ptr conclusion
    ret
conclusion proc near
    push bp  ;save bp
    mov bp,sp  ;use bp to access parameter
    push ax
    push cx
    push si
    push di
    
    mov si,[bp+0ah]  ;get addr of scores
    mov di,[bp+06h]  ;get addr of num
    mov cx,[di]  ;cx<--(num)
    mov di,[bp+04h]   ;get addr of S6
    xor ax,ax
    
next:   
    mov dl,10
    mov ax,[si]   
    div dl
    cbw
    sub ax,6
    add ax,ax
    mov di,ax
    add S6[di],1
    ;mov di,ax
    ;add [di],1
    mov di,[bp+04h]    
    add si,2
    loop next
    
    pop di
    pop si
    pop cx
    pop ax
    pop bp
    ret 6
 conclusion endp 
 main endp   
CODES ENDS
END START


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?