Тасм не запускать предопределенные данные в переменной - PullRequest
0 голосов
/ 24 апреля 2010

Я присваиваю некоторое значение в переменной

ar db 107,106,105,104,103,102,101,100,99,98

а также не запускаемая строка

msg db "this is not printed by tasm ","$"

но это работает на эмуляторе emu8086 Актуальный код

Пузырьковая сортировка

data segment
ar db 107,106,105,104,103,102,101,100,99,98
ends


code segment
 start:
assume cs:code,ds:data
mov ax, data
mov ds, ax
mov es, ax



mov cl,00h
   lb1:
mov ch,09h
sub ch,cl
mov si,0
lb2:
    mov dl,ar[si]
    mov dh,ar[si+1]
    cmp dl,dh
    jle finish
    mov ar[si],dh
    mov ar[si+1],dl
finish:
    inc si
    dec ch
    cmp ch,00
    jg lb2
inc cl
cmp cl,09h
jl lb1


mov cx,10
mov si,0
  lb3:
mov dl,ar[si]
mov ah,02h
int 21h

inc si
loop lb3

mov ax, 4c00h 
int 21h    
ends

end start 

тогда в чем проблема, я не могу определить это Спасибо за вашу поддержку пожалуйста, мне нужен результат, не ленитесь

1 Ответ

0 голосов
/ 06 июля 2010

. Модель маленькая .stack .данные .код Орг 5000

buff db 256 dup(?)

старт: мов ах, 3fh; чтение строки из стандартного ввода xor bx, bx
MOV DX, смещение бафф MOV CX, размер бафф в 21 час JNC хорошо RET

хорошо: MOV BX, смещение баффа
sub al, 2; игнорировать CRLF толкающий топор 2, 2; два или более символов? jb отсортировано

add   ax, bx
dec   ax
mov   cx, ax            ; cx - ptr. to the last element
inc   bx                ; starting with the second element

for1: мов си, сх; внутренний цикл всегда начинается с последнего элемента мов дл, 1; dl используется в качестве «отсортированного» флага

for2: мов топор, [си - 1]; получить два символа cmp al, ах; они в порядке? круто xor dl, dl; нет, тогда сбросьте "отсортированный" флаг мов [си - 1], ах; ... и обмениваться ценностями мов [си], ал

прохладный: дек си; хорошо, внутренний цикл продолжается до тех пор, пока si

test  dl, dl            ; some exchanges occured ?
jne   sorted            ; nope - then the array is sorted

inc   bx                ; the outer loop continues till
cmp   bx, cx            ; bx goes past the last element in array ...
jbe   for1

отсортирован: pop cx; записать результат на стандартный вывод xor bx, bx мов ах, 40ч inc bx MOV DX, смещение бафф int 21h

ret

конец начала

...