汇编语言,统计BUFFER为起始地址的连续200个单元中的偶数

急求
2024-12-27 11:01:31
推荐回答(1个)
回答1:

data segment
  buffer db 200 dup(?)  ;数据自定
  n   dw 0
data ends

assume cs:code, ds:data
code segment
start:
   mov ax, data
   mov ds, ax

   mov cx, 200
   lea si, buffer
L0:
   mov al, [si]
   test al, 1  ;判断最后一位,=0是偶数,=1是奇数
               ;这个判断是有问题的,0是非奇非偶,
               ;所以,不应该这样判断
   jnz next
   cmp al, 0   ;再加上对0的判断,最后1个bit=0,并且整个数不等于0的时候
   jz next     ;这个数是偶数
   inc n
next:
   inc si
   loop L0
 
 ; print n, 省略
   mov ah,4ch
   int 21
code ends
   end start