.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 0AH,0DH,'TYPE HEX NUMBER, 0000 - FFFF: $'
MSG2 DB 0AH,0DH,'THE SUM IS: $'
MSG3 DB 0AH,0DH,'WRONG INPUT!$'
SUM DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
START:CALL INPUT_HEX
MOV SUM,BX
CALL INPUT_HEX
MOV AH,9
LEA DX,MSG2
INT 21H
ADD SUM,BX
JNC NO_CRY
MOV DL,'1'
MOV AH,2
INT 21H
NO_CRY:XOR BX,BX
MOV DH,4
NEXT1:MOV BX,SUM
MOV CL,12
SHR BX,CL
CMP BL,0AH
JAE LETTER1
ADD BL,30H
JMP DSP1
LETTER1:ADD BL,37H
DSP1:MOV AH,2
MOV DL,BL
INT 21H
MOV CL,4
SHL SUM,CL
DEC DH
JNZ NEXT1
JMP START
MAIN ENDP
INPUT_HEX PROC
INPT:MOV AH,9
LEA DX,MSG1
INT 21H
MOV DH,4
NXT_IN:MOV AH,1
INT 21H
CMP AL,'Q'
JE DOS
CMP AL,'q'
JE DOS
CMP AL,'F'
JA NOT_HEX
CMP AL,'0'
JB NOT_HEX
CMP AL,'9'
JBE DIGIT
CMP AL,'A'
JAE LETTER
JMP NOT_HEX
DIGIT: SUB AL,30H
JMP PUT_IN
LETTER:SUB AL,37H
PUT_IN:MOV CL,4
SHL BX,CL
OR BX,AX
DEC DH
JNZ NXT_IN
JMP BACK
NOT_HEX:MOV AH,9
LEA DX,MSG3
INT 21H
JMP INPT
DOS:MOV AH,4CH
INT 21H
BACK:RET
INPUT_HEX ENDP
END MAIN
執行後前2位數若打偶數0.2.4....
相加後都錯的-
例如:0000+0000=2200
可是1111+1111=2222
不知道哪裡出錯高手幫我檢查一下
2007-12-05 16:38:57 · 2 個解答 · 發問者 ? 1 in 電腦與網際網路 ➔ 程式設計
我上面的程式:可輸入4個16進制相加
可是我找不出錯誤,相加前2個數字 例如:ABCD+1234
AB和12是我所說的前2個數字
這2個只要有出現偶數相加就錯誤
我程式哪裡打錯了
2007-12-05 19:01:31 · update #1
我先幫你把英文翻成中文
模範的小的
。堆積 100H
。資料
MSG1 分貝 0AH , 0DH,'類型 HEX 編號, 0000- FFFF: $'
MSG2 分貝 0AH , 0DH,'總數是: $'
MSG3 分貝 0AH , 0DH,'錯誤的輸入!$'
總數 DW ?
。密碼
主要部份 PROC
MOV 斧頭,@資料
MOV DS,斧頭
開始:呼叫 INPUT_HEX
MOV 總數,BX
呼叫 INPUT_HEX
MOV 啊,9
LEA DX,MSG2
INT 21H
增加總數,BX
JNC NO_CRY
MOV DL,'1'
MOV 啊,2
INT 21H
NO_CRY:XOR BX,BX
MOV DH,4
下個 1:MOV BX,總計
MOV CL,12
SHR BX,CL
CMP BL,0AH
JAE 寫上 1
增加 BL,30H
JMP DSP1
寫上 1:增加 BL,37H
DSP1:MOV 啊,2
MOV DL
2007-12-05 21:46:08 補充:
問題是...................
我看不懂你要問什麼???????????= ='''
2007-12-11 21:44:57 補充:
...................請問9527
你是在取笑我嗎?
2007-12-05 16:42:48 · answer #1 · answered by 琳琳 6 · 0⤊ 0⤋
當掉啦@@ 不過是你程式寫錯而已XD 你叫什麼名字阿= =
2007-12-07 23:47:53 補充:
才10點阿= = 你的作業 我全都會寫捏= = 叫楊老師當掉你辣
2007-12-07 18:26:10 · answer #2 · answered by eric 7 · 0⤊ 0⤋