主题:编写程序,求出首地址为DATA的10H字数组中最小偶数,并把它存放在变量Z中。
aping
[专家分:0] 发布于 2005-06-21 20:39:00
编写程序,求出首地址为DATA的10H字数组中最小偶数,并把它存放在变量Z中。
如果你是一个编程高手,原同你较量!!做此题!!!!!!!!
[em2][em2][em2][em2][em2][em2][em2][em2][em2][em2][em2][em2][em2]
回复列表 (共9个回复)
沙发
月牙上的精灵 [专家分:130] 发布于 2005-06-23 18:02:00
注意:在数据存放中,高低位是相反的
偶不知道你所要求是的带符号数还是无符号数
这个是无符号的程序
stack segment para stack 'stack'
db 256 dup(00)
stack ends
data1 segment para public 'data1'
data dw 455dh,5448h,76a7h,6f72h,85ddh,0c964h,0f842h,0159h,2445h,4598h,35d4h,6484h,76f2h,62ach,5430h,8442h
a dw 16,0,16 dup(0)
z dw 0000h
data1 ends
code segment para public 'code'
assume cs:code,ds:data1
main proc far
mov ax,data1
mov ds,ax
mov cl,10h
mov ch,0
lea bx,data
lea si,a
k2:mov ax,[bx]
shr ax,1
jc k1
mov ax,[bx]
mov [si],ax
add si,2
inc ch
k1:add bx,2
dec cl
cmp cl,0
jnz k2
lea bx,a+2
mov ax,a
mov cl,ch
k4:cmp ax,[bx]
jnc k3
mov ax,[bx]
k3:add bx,2
dec cl
cmp cl,0
jnz k4
mov z,ax
mov dl,ah
mov ah,02h
int 21h
mov dl,al
mov ah,02h
int 21h
mov ah,4ch
int 21h
main endp
code ends
end main
板凳
TIGER1818787 [专家分:180] 发布于 2005-06-25 23:33:00
DATA1 SEGMENT
DATA DW 0210H,0F213H,0F23H,9108H,0002H,0,0FFFFH,0DE9H,
DW 2309H,0F970H,3012H,48FEH,2598H,0FEEH,0213H,2048H
COUNT DB ($-DATA)/2
Z DW ?
DATA1 ENDS
CODE SEGMENT
ASSUME DS:DATA1,CS:CODE
START: MOV AX,DATA1
MOV DS,AX
MOV CX,COUNT
LEA SI,DATA
MOV BX,0FFFFH
LOOP1: LODSW
MOV DX,AX(暂存到DX)
SHR AX,1(判断是否偶数)
JNC LOOP2(是偶数)
LOOP LOOP1
JMP EXIT
LOOP2: CMP BX,DX(第一次与0FFFFH比较)
JA LOOP3
LOOP LOOP1
JMP EXIT
LOOP3: CMP DX,0(排除0)
JNE LOOP4
LOOP LOOP1
JMP EXIT
LOOP4: MOV BX,DX
LOOP LOOP1
EXIT: MOV Z,BX
MOV AH,4CH
INT 21H
CODE ENDS
END START
上机调试即可,我调试过。是无符号数。排除全部是奇数的可能,如果全是奇数,那麽BX的值不会变。
3 楼
xuchao4177 [专家分:100] 发布于 2005-07-03 21:41:00
这个好像是我 们期末的考试题啊!
4 楼
xuchao4177 [专家分:100] 发布于 2005-07-03 21:42:00
本人赞同楼上的楼上之意见!!
5 楼
xxkln [专家分:0] 发布于 2005-11-10 23:49:00
支持楼上的说法的啊
6 楼
ahl [专家分:60] 发布于 2005-11-11 21:06:00
引用自2楼:
LOOP2: CMP BX,DX(第一次与0FFFFH比较)
JA LOOP3
请问这个语句是啥功能,我是菜鸟,呵呵
7 楼
小美夕 [专家分:0] 发布于 2005-12-22 12:49:00
DATA SEGMENT
8 楼
小美夕 [专家分:0] 发布于 2005-12-22 13:18:00
DSEG SEGMENT
DATA DW 1,3,4,5,6,6,8,2,4,10
Z DW ?
X DB 2
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG
START: MOV AX,DATA
MOV DS,AX
MOV Z,1000
MOV CX,10
LEA BX,DATA
NEXT: MOV AX,[BX]
DIV X
CMP AH,0
JE A1
ADD BX,2
JMP LOOP1
A1: CMP AX,Z
JL A2
ADD BX,2
JMP LOOP1
A2: MOV Z,AX
ADD BX,2
LOOP1: LOOP NEXT
MOV AH,4CH
INT 21H
9 楼
TIGER1818787 [专家分:180] 发布于 2006-01-15 22:30:00
[quote]引用自2楼:<br>
<br>
LOOP2: CMP BX,DX(第一次与0FFFFH比较)<br>
JA LOOP3<br>
<br>
<br>
请问这个语句是啥功能,我是菜鸟,呵呵[/quote]
这个语句要的是一个分支而已,也就是方便下面的程序编写.
我来回复