80x86汇编语言写一个过程Preeven,判断一个串中偶数的个数
时间: 2024-02-06 08:10:35 浏览: 98
以下是一个80x86汇编语言实现的过程Preeven,可以用于判断一个字符串中偶数的个数:
```assembly
Preeven PROC
push bp
mov bp, sp
push si
push di
push cx
mov si, [bp+6] ; SI指向字符串
mov cx, [bp+8] ; CX为串长
xor bx, bx ; BX清零,用于计数
mov dl, '0' ; 将DL设置为字符'0'
Check:
lodsb ; 加载SI所指向的字符到AL,SI自动加1
cmp al, '0' ; 判断是否为数字字符
jb Next ; 如果不是,跳到下一个字符
cmp al, '9'
ja Next
sub al, '0' ; 将字符转换成数字
and al, 1 ; 判断是否为偶数
jz Even ; 如果是,跳到Even
Next:
loop Check ; 处理下一个字符
pop cx
pop di
pop si
mov ax, bx ; AX返回偶数的个数
pop bp
ret 4
Even:
inc bx ; 偶数计数器加1
jmp Next ; 继续处理下一个字符
Preeven ENDP
```
使用方法:
1. 将该代码保存为文件,例如 "preeven.asm"。
2. 使用汇编器将其编译为目标文件,例如 "preeven.obj"。
3. 在程序中使用该过程,例如:
```assembly
mov si, OFFSET str ; str为要处理的字符串
mov cx, LENGTHOF str
call Preeven ; 调用Preeven过程
mov bx, ax ; bx中存储偶数的个数
```
注意:该过程只能判断数字字符是否为偶数,如果字符串中包含非数字字符,将会被忽略。
阅读全文