主题:各位帮帮忙啊 解答一下编程题
vvvbh
[专家分:0] 发布于 2008-12-29 17:47:00
从DBT开始单元存有10个带符号字节数,求出其中正数,负数,零的个数。请各位高手 解答一下。
回复列表 (共4个回复)
沙发
木鱼凡心 [专家分:70] 发布于 2009-01-03 01:08:00
这个不难吧
怎么有人看没人回帖呢
板凳
木鱼凡心 [专家分:70] 发布于 2009-01-03 01:24:00
DATA SEGMENT
DBT DB 12,45,0,-4,-5,0,5,4,-8,6
STR DB 'The times of 0 - +',0ah,0dh,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA SI,STR
MOV DX,SI
MOV AH,9H
INT 21H
MOV SI,OFFSET DBT
MOV CX,10
MOV BX,3030H;将其先制30H 为了使其成为ASC||供输出
MOV DL,30H
LP: MOV AL,[SI]
CMP AL,0
JZ NEXT0
jG NEXT1
INC BL
JMP NEXT2
NEXT1: INC BH
JMP NEXT2
NEXT0: INC DL
NEXT2: INC SI
LOOP LP
MOV AH,2
int 21H
MOV DL,BL
INT 21H
MOV DL,BH
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
3 楼
木鱼凡心 [专家分:70] 发布于 2009-01-03 01:28:00
不好意思 为了追求速度 格式不太规范
就凑合着了
结果235
是表示 2个0
3个负数
5个正数
方法是是那样就可以了
4 楼
死活人他哥哥活死人 [专家分:10] 发布于 2009-02-19 18:48:00
我的data segment
string1 db 'zhengshu:','$'
string2 db 'fushu:','$'
arrayM db -8,-4,-5,-44,-21,-5,7,3,9,4
db 44,-65,65,21,77,1,-1,54,32,10
arrayN db 20 dup(0)
arrayP db 20 dup(0)
ASCII DB 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
DB 41h,42h,43h,44h,45h,46h
data ends
code segment 'code'
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
lea si,arrayM
lea di,arrayN
lea bx,arrayP
mov dx,0
mov cx,20
next1: mov al,[si]
test al,80h
js next
mov [di],al
inc dx
inc si
inc di
dec cx
jnz next1
push dx
jmp next2
next: mov [bx],al
inc si
inc bx
dec cx
jnz next1
next2:lea dx,string1
mov ah,9
int 21h
pop dx
mov ax,dx
call aldisp
push dx
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
lea dx,string2
mov ah,9
int 21h
pop dx
mov ax,14h
sub ax,dx
call aldisp
mov ah,4ch
int 21h
aldisp proc
push ax ; 保护入口参数
push cx
push ax ;暂存数据
mov cl,4
shr al,cl ;转换AL高4位
call htoasc
pop ax
call htoasc ;转换低4位
pop cx
pop ax
ret
aldisp endp
htoasc proc
push ax
push bx
push dx
mov bx,offset ASCII
and al,0fh
xlat
mov dl,al
mov ah,2
int 21h
pop dx
pop bx
pop ax
ret
htoasc endp
code ends
end start
我来回复