输入9个字节数,统计显示0和非0的个数

该程序通过汇编语言实现,能够接收9个字节的输入,并统计这些输入中0值和非0值的数量。程序首先预留内存空间存放输入数据及计数变量,接着读取键盘输入并保存至内存区,最后通过比较每个字节与数值30H(ASCII码的'0')来区分0值和非0值,并分别累加相应的计数器。
摘要由CSDN通过智能技术生成

;输入9个字节数,统计显示0和非0的个数

data segment
   table db 10 dup (0)
    zct db 0
    nzct db 0
data ends
 
CODE SEGMENT
    ASSUME  CS:CODE,DS:data

START:
    MOV AX,data
    MOV DS,AX
    mov ax,0
    MOV CX,9
   
     ;lea si,table
   ;mov si,0 
  S:MOV AH,1
    INT 21H
    MOV table[si],al
    inc si
    ;MOV AH,2
    ;mov dl,20h
    ;INT 21H
    LOOP S 
 
   mov ax,0
   mov si,0
     mov cx,9
     ;lea si,table
  ;mov di,30h
lop1:  
      cmp  table[si],30H
      jz zero            
     
      add nzct,1
      jmp over
      
   
    
zero:  add zct,1
    
over:  inc si
      
      loop lop1
   
       mov cx,9
       ;mov di,0
    lea si,table
 output:
        mov dl, [si]
       ;add dl,30h
       mov ah,2
       int 21h
       ;mov dl,20h
     
      ; mov ah,2
       ;int 21h
       ;mov dl, nzct
       ;add dl,30h
       ;mov ah,2
       ;int 21h
     ;mov ah,4ch
     ; int 21h
     inc si
    loop output
    mov dl, nzct
       add dl,30h
       mov ah,2
    int 21h
    mov dl, zct
       add dl,30h
       mov ah,2
    int 21h
    mov ah,4ch
      int 21h
CODE ENDS
    END START

 

——————————————————————————————————————————————————————

 

 

——————————————————————————————————————————————————————

 

data segment
     table db 10 dup (0)
  zct db 0
  nzct db 0
data ends
code segment
     assume cs:code,ds:data
start: mov ax,data
       mov ds,ax
    mov ax,0
       MOV CX,9
   
      ;lea si,table
      ;mov si,0 
  S:  MOV AH,1
      INT 21H
      MOV table[si],al
      inc si
      ;MOV AH,2
      ;mov dl,20h
      ;INT 21H
      LOOP S
  
      lea si,table 
      mov cx,9
       cld  
lop1:  lodsb
       cmp al,30h
       jz zero            
     
       add nzct,1
       jmp over
      
   
    
zero:  add zct,1
    
over:  nop
      
       loop lop1
   
       mov cx,9
       ;mov di,0
    lea si,table
output:
        mov dl, [si]
       ;add dl,30h
       mov ah,2
       int 21h
       ;mov dl,20h
     
      ; mov ah,2
       ;int 21h
       ;mov dl, nzct
       ;add dl,30h
       ;mov ah,2
       ;int 21h
     ;mov ah,4ch
     ; int 21h
     inc si
    loop output
    mov dl, nzct
       add dl,30h
       mov ah,2
    int 21h
    mov dl, zct
       add dl,30h
       mov ah,2
    int 21h
    mov ah,4ch
      int 21h
CODE ENDS
    END START

  

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值