实验题目:
有3个字变量x、y和z,把最大数挑出放max字中。
程序代码如下:
Data segment
X dw 1234h ;2345H 2345H
Y dw 2345h ;1234H 2345H
Z dw 3456h ;3456H 2345H
Max dw ?
Data ends
Stack segment para stack
Dw 10 dup(?)
Stack ends
Code segment
Assume cs:code,ds:data,ss:stack
Start: Mov ax,data
Mov ds,ax
Mov ax,x
Sub ax,y ;x-y
Jge xGey ;x>=y
Mov bx,y
Sub bx,z ;y-z
Jge ygez ;y>=z
Jmp maxz
Xgey: Mov ax,x
Sub ax,z ;x-z
Jge xgez ;x>=z
Jmp maxz
Xgez: Mov ax,x
Mov max,ax
Jmp reint
Ygez: mov bx,y
Mov max,bx
Jmp reint
Maxz: Mov cx,z
Mov max,cx
Reint: Mov ah,4ch
Int 21h
Code ends
End start
附:
可以将SUB指令改为CMP指令,而且CMP指令较SUB指令更加的好,但是代码需要修改一小部分。
程序代码测试:
第一种情况(X<Y<Z)
第二种情况(Y<X<Z)
第三种情况(X=Y=Z)
附:由于情况较多,仅验证这三种情况,其余验证过程略。