|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.08.2018, 16:43 | #41 |
Новичок
Джуниор
Регистрация: 14.08.2018
Сообщений: 62
|
вопрос следующий почему мы функцию записываем в регистр ah? а подфункцию у этой функции в al?
|
14.08.2018, 16:44 | #42 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
Да хоть день назад. Как это связано с тем, что вы считаете, что если на листочке написать 100 км, то весь асфальт туда запихается...
|
14.08.2018, 16:45 | #43 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
|
14.08.2018, 16:47 | #44 |
Новичок
Джуниор
Регистрация: 14.08.2018
Сообщений: 62
|
|
14.08.2018, 16:48 | #45 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
|
14.08.2018, 16:57 | #46 |
Новичок
Джуниор
Регистрация: 14.08.2018
Сообщений: 62
|
(01) CSEG segment
(02) assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG (03) org 100h (04) Start: (05) mov ax,0B800h (06) mov es,ax (07) mov al,1 (08) mov ah,31 (09) mov cx,254 (10) Next_screen: (11) mov di,0 (12) call Out_chars (13) inc al (14) loop Next_screen (15) mov ah,10h (16) int 16h (17) int 20h (18) Out_chars proc (19) mov dx,cx (20) mov cx,2000 (21) Next_face: (22) mov es:[di],ax (23) add di,2 (24) loop Next_face (25) mov cx,dx (26) ret (27) Out_chars endp (28) CSEG ends (29) end Start Строки (01)—(08), (15)—(17) и (28), (29) опускаем. Вопросов по ним быть не должно. В строке (09) заносим в cx число 254, сообщающее, сколько раз будет выпол-няться основной цикл. Строки (10) и (14) — "голова" и "хвост" нашего основного цикла соответственно. Значение di будет меняться во вложенной процедуре, по-этому нам необходимо будет его постоянно аннулировать (строка (11)). В строке (12) вызываем процедуру, выводящую на экран символ, код которого находится в al (при первом проходе цикла это будет символ "рожица" с кодом 01). Все! Те-перь на экран будет выведен символ с кодом 01. При этом di будет равно 2001, по-этому нам и нужно его постоянно обнулять. Далее увеличим на единицу код символа, который находится в al. Во второй раз al будет содержать 02 — тоже "рожица", но немного другого вида (строка (13)). Затем уменьшим счетчик на 1 и перейдем к заполнению экрана кодом 02 (строка (14)). И так далее. Всего 254 раза. Теперь рассмотрим работу самой процедуры. В строке (19) сохраняем содержи-мое регистра cx (просто перенесем его в dx), т. к. он будет изменен во вложенном цикле ниже. Строки (21) и (24) — "голова" и "хвост" вложенного цикла, который будет выполняться 2000 раз (именно столько символов вмещается на экране в тек- |
14.08.2018, 16:58 | #47 |
Новичок
Джуниор
Регистрация: 14.08.2018
Сообщений: 62
|
Теперь рассмотрим работу самой процедуры. В строке (19) сохраняем содержи-мое регистра cx (просто перенесем его в dx), т. к. он будет изменен во вложенном цикле ниже.
а вот это важно здесь регистр меняется и чтоб его вернуть нужно его сохранить же |
14.08.2018, 17:01 | #48 |
Новичок
Джуниор
Регистрация: 14.08.2018
Сообщений: 62
|
тоесть из-за того что я меняю сам значение регистра мне его нужно сохранять?
|
14.08.2018, 17:03 | #49 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
А вы думаете пришельцы с альфа-центавры прилетят и вернуть значение назад?
|
14.08.2018, 17:17 | #50 |
Новичок
Джуниор
Регистрация: 14.08.2018
Сообщений: 62
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Assembler, команда MOV | OmegaBerkut | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 10 | 27.09.2015 20:44 |
PDP 11 - команда пересылки mov 27 27. почему это фатальная ошибка? | 13xXx13 | Помощь студентам | 0 | 15.01.2012 23:34 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
команда MOV, проблемы | fermat_c | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 18.04.2008 19:19 |
У меня вопрос про базы данных,а точнее про таблицы!!! | Alexij | Общие вопросы Delphi | 1 | 13.04.2008 23:24 |