Показать сообщение отдельно

  #338  
Старый 15.06.2008, 19:26
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами: 9702986

Репутация: 479
По умолчанию

mov dx,stroka+100h ;fasm не знает что такое lea/offset
xor bx,bx
mov ah,09h
int 21h ;нормально выводит строку
xor ax,ax

mov cx,5 ;первые 5 букв
mov si,stroka+100h

@cy:lodsb ;буква из stroka -> аккумулятор
mov [string+100h],al ; тут он пытается записать букву из stroka в string
loop @cy

xor ax,ax
mov dx,string+100h
mov ah,09h
int 21h ;тут он выводит бред
int 20h

stroka db 'aldaskjfahslkdjahlsjdh',13,10,'$',0
string db 80 DUP(?)

Программа должна вывести сначал переменную stroka, она ее выводит, а затем должна перегнать ее в переменную string и вывести, но похоже прогша ее тупо не записывает в string.
Возможно ли через stosb?

//fasm

получилось так:

mov cx,5
mov si,stroka+100h
mov di,string+100h

@cy:lodsb
stosb
loop @cy

...................

string db '0000000000000000000000',13,10,'$',0

вопрос: как правильно будет через string dup (?)

Последний раз редактировалось ntldr; 15.06.2008 в 19:36..
 
Ответить с цитированием