я объяснил. Конкретика где? Функция 13h. 10ое прерывания, открываешь справочник, смотришь параметры. Какой из этих шагов не понятен?
Код (Text): INT 10 - VIDEO - WRITE STRING (AT and later,EGA) AH = 13h AL = write mode bit 0: update cursor after writing bit 1: string contains alternating characters and attributes bits 2-7: reserved (0) BH = page number BL = attribute if string contains only characters CX = number of characters in string DH,DL = row,column at which to start writing ES:BP -> string to write Return: nothing Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling, backspace, and CR only take place in the active page also available PC or XT with EGA or higher HP 95LX only supports write mode 00h IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved" with PhysTechSoft's PTS ROM-DOS the AL,BH,BL,DH, and DL values are ignored on entry. BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on the active page rather than the requested page (с) Ralph Brown
>а вы,знатоки(пожалуста) не можете написать код с коментариями не можем =( мы асма отроду не видовали =( Код (Text): org 100h mov ax, 0003h ;set 03 text mode 80x25 chars int 10h mov ax, cs mov es, ax ;mov cs to ds lea bp, [mess] ;mov string offset to bp mov ah, 13h ;number of function mov bx, 0000h ;BH = page numbe BL = attribute if string contains only characters mov cx, 4 ;number of characters in string mov dx, 0a0ah ;DH,DL = row,column at which to start writing ;yeah-yeah we will write at (10, 10) int 10h ;put our string to screen mov ah, 10h ;wait for key int 16h ;by 16h intrrupt int 20h ;exit program mess db 'T',7,'e',7,'s',7,'t',7 ; this is our string, isn't it?
если лаба/курсовик/... то http://www.wasm.ru/forum/viewtopic.php?id=17088 если другое, то http://www.wasm.ru/forum/viewforum.php?id=26 тк заметно что не для изучения, а ради кода.
С регистром AL при вызове функции (AH=13h) у тебя непонятки после mov ax 0003h int 10h в al хранится 03h следовательно 0 и 1 биты установлены. хотя правильнее будет не mov ah, 13h а mov ax 1300h
вот посидел разобрался ..получил код..вроде всё правильно но вместо--- нелло ворлд!!!-- выводит символы ...и не могу понят почему...может дело в 13н ..но мне строго с неей надо сделать..посмотрите пожалуста.. my_data segment string db 'hello world' ; ASCII-строка lenS = $-string my_data ends my_stack segment stack ; описание сегмента стека dw 32 dup(?) ; резервирование 32 слов для стека my_stack ends ; Код my_commands segment assume cs:my_commands, ds:my_data begin: mov ax, my_data ; занесение адреса сегмента my_data mov ds, ax ; в сегментный регистр ds mov ah, 3 ; вначале узнаем, где курсор mov bh, 0 ; int 10h ; dh = строка экрана, dl = позиция mov si, 0 ; будем циклить next: mov ah, 13h ; функция BIOS вывода символа mov cx, 1 ; количество экземпляров символа mov bl, 7 ; атрибут цвета - серым по черному mov al, [si] ; загружаем символ int 10h ; вызов BIOS mov ah, 2 ; подвинем курсор mov bh, 0 ; (№ видеостраницы) inc dl ; (dh = прежняя строка) int 10h ; вызов BIOS inc si ; смещаемся по строке символов cmp si, lenS ; дошли до конца? jb next ; (содержательная часть программы) exit: mov ah, 4Ch ; функция завершения программы int 21h my_commands ends end begin ; конец программы, метка входа
Axotnik сообшение номер 6. Номер сообщения пишется в его правом верхнем углу - например это сообщение #20.