2016-03-31 12 views
0

TASMで作業するアセンブラ言語を初めて使用しているため、昇順に番号をソートする必要があります。コードはシンプルですが、配列の要素数をキーボードから読み取ってからキーボードから挿入する必要があります。問題は、入力したすべてがASCIIコードで表示されていることで、変換については何もわかりません。私はどのように読むことができますか?キーボードから配列の要素を読み込むアセンブラ

ありがとうございます!

ソート5つの数字

.MODEL SMALL 
.DATA 
NUM DW 42H,34H,26H,17H,09H 
LEN EQU 05H 

.CODE 
START: 
MOV AX,@DATA 
MOV DS,AX 
MOV BX,LEN-1 ;Initialize BX as the counter for loop UP 
MOV CX,BX  ;Initialize CX as the counter for loop UP1 

UP1: MOV BX,CX 
LEA SI,NUM ;SI points to the first number in NUM 

UP: MOV AX,[SI] 
MOV DX,[SI+2] 
CMP AX,DX 
JB DOWN   ;no swapping if [SI] less than [SI+2] 
MOV [SI],DX 
MOV [SI+2],AX ;swap the numbers pointed by SI and SI+2 
       ;if [SI] is greater than [SI+2] 

DOWN: 
INC SI 
INC SI  ;increment SI to point to next dataword(number) 
DEC BX 
JNZ UP 

DEC CX 
JNZ UP1 

MOV AH,4CH 
INT 21H 
END START 
END 

答えて

0

あなたは、文字列を読み込み、それを変換 - 文字をcharで。

string "4132" 

"4" is a digit, so value = 10*value (= 0) + digit (= 4) 
"1" is a digit, so value = 10*value (= 40) + digit (= 41) 
"3" is a digit, so value = 10*value (= 410) + digit (= 413) 
"2" is a digit, so value = 10*value (=4130) + digit (=4132) 
no more digits, we're done 
: algorithは病気あなたにサンプルを与えるこの

for each digit in String 
    value *= 10 
    value += value(digit) 

のように説明することができ

関連する問題