帮忙写一个汇编程序

来源:百度知道 编辑:UC知道 时间:2024/07/06 17:02:26
在内存DATA开始的单元中连续存放8个无符号的字节数据,统计其中奇数和偶数的个数,如果奇数的个数大于偶数的个数显示‘1’,否则显示‘2’,相等显示‘0’。
DSEG SEGMENT
DATA DB 1,2,3,4,5,6,7,9
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
(请填写程序)
CSEG ENDS
END START
要求简单 能正确运行的 我试了 你的不行啊
你自己试试看了吗? 还有31 Sever Errors
帮帮忙啊 大哥 我在考试!

DSEG SEGMENT
DATA DB 1,2,3,4,5,6,7,9
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
mov ax,DSEG
mov ds,ax
mov dx,0 ;dh=奇数个数,dl=偶数个数
mov si,offset DATA
mov cx,8
Q0:mov al,[si]
test al,1;看该数末尾是0还是1 ?
jz Q1
inc dh ;奇数个数+1
jmp Q2
Q1:inc dl;偶数个数+1
Q2:inc si
loop Q0
mov al,'0'
cmp dh,dl;
jz t1 ;相等显示‘0’
mov al,'2';奇数个数<偶数显示‘2’
jb t1
mov al,'1';奇数个数>偶数显示‘1’
t1:mov ah,0eh
int 10h ;显示结果
mov ah,1
int 21h
mov ah,4ch
int 21h

CSEG ENDS
END START

DSEG SEGMENT
DATA DB 1,2,3,4,5,6,7,9
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
;(请填写程序)
mov ax, DSEG
mov ds, ax

xor si, si ;SI与DI中清零,用于统计奇偶个数,SI中存奇数的个数
xor di, di
mov dl, 2
mov cx, 8 ;循环8次
lea bx, DATA ;DATA的地址放入BX中
@@:mov al, [bx] ;将数据传入AL
cbw
div dl ;a