8086汇编:实验一

模拟器:emu8086

  1. (简答题)
    编程1:键盘输入2个数字字符,求其成绩,要求:完成编程与调试

(1)成绩保存变量中;

(2)成绩显示在显示屏上。
在这里插入图片描述

data segment 
    str DB 0,0,'$'
    ans DW 0  
data ends
code segment
assume cs:code,ds:data
start :mov ah, 1
    int 21h      
    sub al,'0'
    mov bl, al
     

    mov ah, 1
    int 21h       
    sub al,'0'   
    
    
    mul bl   
    
    mov ans, ax    ;将ax中的乘积保存在ans中
    
    aam             ;乘法的十进制调整指令
    
    
    mov bh,ah    
    mov bl,al 
    
    add bh,30h 
    mov str,bh         ;将乘积十位的ascii码保存在字符串的第一个位置
     

    add bl,30h   
    mov [str+1],bl         ;将乘积个位的ascii码保存在字符串的第一个位置
                                    
    mov [str+2],'$'
            
    lea dx,str   ;输出答案
    mov ah,9
    int 21h

    mov ax,4c00h  

    int 21h

code ends

end start

编程2

编程统计变量S(200个数)中正数、负数、0的个数,分别存放到变量Z、F、L中,并求出所有正数的平均值(整数)存放到P变量中。

在这里插入图片描述

data segment
    s db 120 dup(-29) ,40 dup(0),20 dup (9) ,20 dup(3)
    z db 0
    f db 0
    l db 0 
    p db 0
    sum  dw 0  
    str db 'ok',0dh,0ah,'$'
data ends

code segment
     assume cs:code,ds:data
start: mov ax,data
       mov ds,ax
       lea si,s
       mov cx,200  
       cld
    lop:lodsb        ;si to al
        cmp al,00h
       je lin         ;zero
       test al,80h
       jnz  fu            ;fushu
       inc   z             ;zhen
       mov bx, sum 
       add  bl ,al
       mov sum ,bx
       jmp   again
       
   lin: inc l  
        jmp again
   
   fu:   inc f   
        jmp again
   
   again:  loop lop     
   	
        mov ax  ,sum
        div  z
        mov  p,al
        
    ;type num of z 
       
    mov dl,'z'
    mov ah, 2
    int 21h 
    mov dl,'='
    mov ah, 2
    int 21h   
       
       
      
    mov al,z                      
	cbw 
	mov bl ,10
	idiv bl      
	mov cl ,ah
	add cl ,30h 
	cbw
	idiv bl
	add ax,3030h
	mov bx,ax

	mov dl,bl
	mov ah,2 
	int 21h

	mov dl,bh
	mov ah,2
	int 21h   
	
	mov dl,cl
	mov ah,2
	int 21h

    mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h      
        
        
        
        
    ;type num of f

    mov dl,'f'
    mov ah, 2
    int 21h 
    mov dl,'='
    mov ah, 2
    int 21h


	mov al,f                   
	cbw 
	mov bl ,10
	idiv bl    
	mov cl ,ah
	add cl ,30h
	cbw
	idiv bl
	add ax,3030h
	mov bx,ax

	mov dl,bl
	mov ah,2 
	int 21h

	mov dl,bh
	mov ah,2
	int 21h  
	
	mov dl,cl
	mov ah,2
	int 21h

    mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h  
                                 
                                 
                                 
   ;type num of l 
   
   mov dl,'l'
    mov ah, 2
    int 21h 
    mov dl,'='
    mov ah, 2
    int 21h
    
	mov al,l                 
	cbw 
	mov bl ,10
	idiv bl    
	mov cl ,ah
	add cl ,30h
	cbw
	idiv bl
	add ax,3030h
	mov bx,ax

	mov dl,bl
	mov ah,2 
	int 21h

	mov dl,bh
	mov ah,2
	int 21h
       
    mov dl,cl
	mov ah,2
	int 21h   
    mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h
  
   
   ;type num of p 
   
   mov dl,'p'
    mov ah, 2
    int 21h 
    mov dl,'='
    mov ah, 2
    int 21h
    
	mov al,p                 
	cbw 
	mov bl ,10
	idiv bl    
	mov cl ,ah
	add cl ,30h
	cbw
	idiv bl
	add ax,3030h
	mov bx,ax

	mov dl,bl
	mov ah,2 
	int 21h

	mov dl,bh
	mov ah,2
	int 21h
       
    mov dl,cl
	mov ah,2
	int 21h   
    mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h
        
        
             
         
        lea dx,str
        mov ah, 9   
        int 21h     
        
        
           
        mov ax, 4c00h
        int 21h
      
code ends

end start

猜你喜欢

转载自blog.csdn.net/qq_42641977/article/details/121130248