Assm - Assembler
|
Пользователь Сообщения: 119 |
Профиль | Отправить PM | Цитировать У кого есть исходник к такой проге: 1)переводит число из шестнацатиричной в десятиричную.
2) заполняет экран знаком $ |
|
Отправлено: 12:06, 28-10-2003 |
Старожил Сообщения: 240
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 01:52, 15-11-2003 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 119
|
Профиль | Отправить PM | Цитировать data SEGMENT
mes1 db 'Enter',0Ah,0Dh,'$' aadb 6,? adb 5 dup (?) data ENDS text SEGMENT assume CS:text, DS:data, SS:sts main proc far push DS xor AX,AX push ax mov ax,data mov DS,AX lea DX,mes1 mov AH,09h int 21h lea DX,aa mov AH,0Ah int 21h ;--------------------------- Таким образом я ввожу данные с клавы. Как введенные мной данные поместить в какой-нибудь регистр (АХ например), чтобы в отладчике я мог видеть это число (понятно в шест. сист. счисления)? подскажите пожалуйста кто знает |
Отправлено: 12:19, 15-11-2003 | #22 |
Старожил Сообщения: 240
|
Профиль | Отправить PM | Цитировать MER
Далее... [code] * * lea * SI,a * * xor *BX,BX * * mov BH,[aa+1] * * xor * DX,DX * * and *BX,BX * * jz * *done * * mov CL,4 nextdig: * * lodsb * * cmp AL,'0' * * jc * * error * * cmp '9',AL * * jnc * process * * and *AL,0DFh * * cmp AL,'A' * * jc * * error * * cmp 'F',AL * * jc * * error * * sub *AL,7 process: * * sub AL,'0' * * shl *DX,CL * * add DX,AX * * dec BX * * jnz nextdig done: // закончили. число в DX ... error: //обработчик ошибки [s]Исправлено: shurikan, 4:33 20-11-2003[/s] [s]Исправлено: shurikan, 4:36 20-11-2003[/s] |
------- Отправлено: 04:55, 18-11-2003 | #23 |
Пользователь Сообщения: 119
|
Профиль | Отправить PM | Цитировать Подскажите плиз: Есть у меня число в регистре AX (к примеру 80B2), как вывести это число на экран именно в таком же виде, т.е число 80B2.
|
Отправлено: 21:16, 20-11-2003 | #24 |
Старожил Сообщения: 240
|
Профиль | Отправить PM | Цитировать MER
.data string *db 10 dup (?) .code * ... * mov *cx,@data * mov *es,cx * lea *di,string * mov *bx,ax * mov *cx,4 next: * push cx * xor *ax,ax * mov *cx,4 @@1: * shl *bx,1 * rol *ax,1 * loop @@1 * pop *cx * add *ax,'0' * cmp *'9' ,ax * jnc *cont * add *ax,7 cont: * stosb * loop next * xor *ax,ax ;;; mov *ax,'$' * stosb done: * ... [s]Исправлено: shurikan, 5:38 21-11-2003[/s] |
------- Отправлено: 03:44, 21-11-2003 | #25 |
Старожил Сообщения: 167
|
Профиль | Отправить PM | Цитировать вот полный код проги(com) выводяшей сканкод клавиши
.286 cseg segment assume cs:cseg, ds:cseg, ss:cseg, es:cseg org 100h begin: mov ah,10h int 16h cmp al,27 je _begin_quit mov dh,ah mov dl,al MOV ax,0 mov al,dh mov bl,10h div bl mov n1,al mov n2,ah MOV ax,0 mov al,dl mov bl,10h div bl mov n3,al mov n4,ah call _n1 call _n2 call _n3 call _n4 add n1,30h add n2,30h add n3,30h add n4,30h mov ah,9 mov dx,offset n1 int 21h JMP BEGIN _begin_quit: int 20h ;---procedures--- _n1proc near cmp n1,9 jbe q1 add n1,7 q1: ret _n1endp _n2proc near cmp n2,9 jbe q2 add n2,7 q2: ret _n2endp _n3proc near cmp n3,9 jbe q3 add n3,7 q3: ret _n3endp _n4proc near cmp n4,9 jbe q4 add n4,7 q4: ret _n4endp ;---data--- n1 db 0 n2 db 0 n3 db 0 n4 db 0 k db ' $' cseg ends end begin код букв(A..F) больше их значения на 37h [s]Исправлено: Andreich, 22:43 21-11-2003[/s] |
------- Отправлено: 04:06, 21-11-2003 | #26 |
Пользователь Сообщения: 119
|
Профиль | Отправить PM | Цитировать Andreich Большое спасибо, но это что за переменные n1, n2, n3, n4. Где их и как описать? Добавлено: shurikan Спасибо, Все работает, наПочему-то на экран ничего не выводит, почему? |
Отправлено: 13:52, 21-11-2003 | #27 |
Старожил Сообщения: 240
|
Профиль | Отправить PM | Цитировать MER
А там и нет функции вывода. Я думал ты сам сможешь отобразить строку на экране. А в коде я специально комментарий поставил. Это там, где последним символом строки заносится 0h или '$'. *Ты же сам писал: Цитата:
|
|
------- Отправлено: 15:45, 21-11-2003 | #28 |
Старожил Сообщения: 167
|
Профиль | Отправить PM | Цитировать MER см выше
|
------- Отправлено: 21:45, 21-11-2003 | #29 |
Пользователь Сообщения: 119
|
Профиль | Отправить PM | Цитировать Andreich
Все круто, но последние две цифры всегда 1 и 0, независимо от того какое число я ввожу! Добавлено: shurikan Незнаю почему, но выводит так: 7777 (не зависимо от того какое число я ввожу) |
Отправлено: 12:30, 23-11-2003 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Assm - Книги по assembler | voodoo doctor | Программирование и базы данных | 13 | 19-11-2009 03:08 | |
Assm - Assembler | mikl | Программирование и базы данных | 1 | 13-04-2004 18:33 | |
Assm - Помощь в Assembler'e | Rish | Программирование и базы данных | 3 | 08-02-2004 19:21 | |
Assm - Assembler | Jeka Ch | Программирование и базы данных | 2 | 19-09-2003 19:57 | |
Assm - Assembler | Guest | Программирование и базы данных | 2 | 18-07-2003 16:39 |
|