程序不适用于变量中的十六进制值

时间:2019-07-09 06:12:30

标签: assembly emu8086

我编写了一个程序,用于比较存储在变量中的4个数字,并在8086(汇编)中获得最大的数字。

这是我的程序:

; Find the greatest among 4 numbers
; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

;CH IS FOR A,CL FOR B,DH FOR C, DL FOR C

; Comparison for var1

MOV CH,var1
MOV CL,var2
MOV DH,var3
MOV DL,var4

CHcomparison:

CMP CH,CL
JL CLcomparison 
CMP CH,DH
JL CLcomparison
CMP CH,DL
JL CLcomparison
MOV AL,CH
JMP end

CLcomparison:


CMP CL,DH
JL DHcomparison
CMP CL,DL
JL DHcomparison
MOV AL,CL
JMP end


DHcomparison:

CMP DH,CH
JL DLcomparison 
CMP DH,DL
JL DLcomparison
MOV AL,DH
JMP end

DLcomparison:

MOV AL,DL


end:

ret       

var1 DB 76h          
var2 DB 90h 
var3 DB 4h
var4 DB 17h

现在,我的程序将最大的四个变量存储在AX寄存器中。它不适用于存储在变量中的十六进制值,但可以使用没有'h'的值,我的意思是普通的十进制值。

0 个答案:

没有答案