Assembler Dilinde yeniyim, TASM üzerinde çalışıyorum, sayıları artan düzende sıralamalı. Kod basit, ancak klavyeden dizinin elemanlarının sayısını okumalı ve sonra bunları klavyeden de eklemeliyim. Sorun şu ki yazdığınız her şey ASCII kodunda görülüyor ve dönüşüm hakkında hiçbir fikrim yok. Okumayı nasıl yapabilirim?Klavye Assembler'den bir dizinin elemanlarını oku
Teşekkürler!
Sıralama 5 numaraları
.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