题目要求判断n的数的奇偶性,把奇数放在一个数组,偶数放在一个数组,分别求个数,并在crt上显示出来,但是我不懂子程序show为什么这么写。与mov dl,al
mov ah,2h
int 21h 有什么不同???
data segment
dat dw 1,2,3,4,5,6,7,8
n equ ($-dat)/2
p dw n dup(?)
m dw n dup(?)
pc dw ?
mc dw ?
data ends
code segment
assume cs:code,ds:data
main proc far
mov ax,data
mov ds,ax
call panduan
mov ax,pc
call crt
call clrf
mov ax,mc
call crt
mov ah,4ch
int 21h
main endp
panduan proc near
mov ax,0
mov bx,0
mov si,0
mov cx,n
lop: test dat[si],1b ;最后一位是否是1
jnz fm
mov bx,dat[si]
push si
mov si,pc
inc pc
mov p[si],bx
pop si
jmp f1
fm: mov bx,dat[si]
push si
mov si,mc
inc mc
mov m[si],bx
pop si
f1: add si,2
dec cx
cmp cx,0
jnz lop
ret
panduan endp
show proc near
xor bx,bx
xor cx,cx
mov bx,10
f2: xor dx,dx
div bx
or dx,0e30h
inc cx
push dx
cmp ax,0
jnz f2
f3: pop ax
int 10h
loop f3
ret
show endp
额。。。偶刚学汇编不久,好多不懂,嘿嘿大神们教教吧,呵呵
------解决方案--------------------
你说的是 dos 的字符输出功能调用,这个代码里用的是 bios 的字符输出功能调用(AH=0eh)。一般是建议尽可能地使用 dos 的,因为其功能适应性上更好些,比如支持输出转向等。