回 帖 发 新 帖 刷新版面

主题:刚学汇编,请问怎么从键盘接收一个十六进制的数啊!!!

小弟刚学,写个简单的代码给小弟看看啊。。。谢谢了

回复列表 (共3个回复)

沙发

贴个程序

;将A以十六进制输出
STACKS   SEGMENT STACK
         DW   128 DUP(?)
STACKS   ENDS
DATAS    SEGMENT 
X        DB  'A'
STRING   DB  'Show A as hex',13,10,'$'
DATAS    ENDS
CODES    SEGMENT
         ASSUME CS:CODES,DS:DATAS
START:   MOV AX,DATAS
         MOV DS,AX
         LEA DX,STRING
         MOV AH,9
         INT 21H
         MOV CH,2
         MOV BL,X
L:       MOV CL,4
         ROL BL,CL
         MOV DL,BL
         AND DL,0FH
         CMP DL,10
         JB  NEXT
         ADD DL,7
NEXT:    ADD DL,30H
         MOV AH,2
         INT 21H
         DEC CH
         JNZ L
         MOV AH,4CH
         INT 21H
CODES    ENDS
         END START

板凳

问题:从键盘接收两个都是一位的十六进制的数,比较他们的大小
用大数减去小数,然后将结果存入Z变量中并从屏幕输出。
那位写个来给我参考一下啊,谢谢了.........

3 楼

写了个试试,发的看看

;输入两个一位十六进制数,大数减小数,差送Z,结果以十六进制输出
STACK  SEGMENT STACK
       DW 128 DUP(0)
STACK  ENDS
DATA   SEGMENT
STR    DB 'ERROR,INPUT AGAIN:',0DH,0AH,'$'
Z      DB 0
DATA   ENDS
CODE   SEGMENT 
       ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
       MOV DS,AX
       LEA DX,STR
T1:    MOV AH,1
       INT 21H
       CALL A
       CALL D
       CMP  CL,1
       JZ   T1
       MOV  BL,AL
T2:    MOV  AH,1
       INT  21H
       CALL A
       CALL D
       CMP  CL,1
       JZ   T2
       CMP  AL,BL
       JB   L
       JMP  NEXT
L:     XCHG AL,BL
NEXT:  SUB  AL,BL
       MOV  Z,AL
       CMP  AL,10
       JL   T
       ADD  AL,7H
T:     ADD  AL,30H
       MOV  DL,AL
       MOV  AH,2
       INT  21H
       MOV  AH,4CH
       INT  21H
A      PROC
       PUSH AX
       PUSH DX
       MOV  DL,0AH
       MOV  AH,2
       INT  21H
       MOV  DL,0DH
       MOV  AH,2
       INT  21H
       POP  DX
       POP  AX
       RET
A      ENDP
D      PROC
       MOV  CL,0
       CMP  AL,30H
       JL   EXIT1
       CMP  AL,3AH
       JL   EXIT
       CMP  AL,41H
       JL   EXIT1
       CMP  AL,47H
       JL   EXIT2
       CMP  AL,61H
       JL   EXIT1
       CMP  AL,67H
       JL   EXIT3
       JMP  EXIT1
EXIT1: MOV  CL,1
       MOV  AH,9
       INT  21H
       JMP  EXIT
EXIT2: SUB  AL,7H
       JMP  EXIT
EXIT3: SUB  AL,27H
EXIT:  RET 
D      ENDP
CODE   ENDS
       END  START
   

我来回复

您尚未登录,请登录后再回复。点此登录或注册