Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Задача со стеком!


Автор: 100usd 8.8.2008, 20:50
Вот код Программы. 
Что она дел[quote]
:0100 XOR AL,AL
:0102 MOV BH,10
:0104 MOV CH,05
:0106 MOV CL,10
:0108 MOV DH,10
:010A MOV DL,3E
:010C MOV AH,06
:010E INT 10
:0110 MOV CX,0004
:0113 CALL 011A
:0116 LOOP 113
:0118 INT 20
:011A ADD BH,10
:011D ADD CH,01
:0120 ADD CL,01
:0123 SUB DH,01
:0126 SUB DL,01
:0129 INT 10
:012B RET

вроблемка в том что CX, используемый в качестве "счетчика" циклов, "перебивает" тот же CX, но используемый как координаты "верхнего левого угла окна".
Вапрос: С помощию стека и команд "Push" и "Pop"необходимо решить задачу.
У меня это не получается.
Прошу помочь!

Добавлено через 2 минуты и 41 секунду
во второй строке ошибка: вместо "Что она дел[quote]" - Что она делает, вы поймете сами, очень простая программка.


Автор: THandle 10.8.2008, 17:53
Ну вот комка, думаю делает то что хотелось топикстартеру:

Код

segm segment
  
  org 100h
   
  begin:
    XOR AL,AL
    MOV BH,10h
    MOV CH,05h
    MOV CL,10h
    MOV DH,10h
    MOV DL,3Eh
    MOV AH,06h
    INT 10h
    MOV CX,0004h
    ckl:
      CALL forv
    LOOP ckl
    INT 20h

  forv proc
    PUSH CX
    ADD BH,10h
    ADD CH,01h
    ADD CL,01h
    SUB DH,01h
    SUB DL,01h
    INT 10h
    POP CX
    RET
  forv endp

segm ends

end begin

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)