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


Автор: susanin 18.4.2007, 22:40
у меня возникла такая проблема...если я заношу число в СХ их сегмента данных, то выводится ошибка... а если заношу это число непосредственно, то никакой ошибки нет...в чем проблема? или это такая особенность СХ???
вот для примера код в котором число заносится в СХ из сегмента данных
Код

Sseg    SEGMENT    STACK    'stack'
        DB    256    DUP    (?)
    Sseg    ENDS
; Сегмент данных
    Dseg    SEGMENT    'data'
     KOL db 10
     REZ DW  ?

    Dseg    ENDS

    ; Сегмент кода
    Cseg    SEGMENT    'code'
    ASSUME    CS:Cseg, DS:Dseg, SS:Sseg

    Main PROC FAR
; настройка сегмента данных
        PUSH    DS         
        MOV    AX, 0         
        PUSH    AX         
        MOV    AX, Dseg 
        MOV    DS, AX

        MOV    AX,0
        MOV    CX, KOL; на эту строчку ругается
;**************************************************************
 ................................................
.............................................
;**************************************************************
        MOV AX, 4C00h             ; Завершение работы
        int 21h
    Main    ENDP
    Cseg    ENDS
        END    Main


а это код с непосредственным занесением значения 
Код

Sseg    SEGMENT    STACK    'stack'
        DB    256    DUP    (?)
    Sseg    ENDS
; Сегмент данных
    Dseg    SEGMENT    'data'
     Num db 10
     REZ DB  ?

    Dseg    ENDS

    ; Сегмент кода
    Cseg    SEGMENT    'code'
    ASSUME    CS:Cseg, DS:Dseg, SS:Sseg

    Main PROC FAR
; настройка сегмента данных
        PUSH    DS         
        MOV    AX, 0         
        PUSH    AX        
        MOV    AX, Dseg 
        MOV    DS, AX

        MOV    AX,0
        MOV    CX,10    ; Кол-во повторов цикла LOOP
;**************************************************************
..........................................................................................
........................................................................................
 ;***************************************************************
        MOV AX, 4C00h             ; Завершение работы
        int 21h
    Main    ENDP
    Cseg    ENDS
        END    Main


помогите пожалуйста разобраться с этим РОНом...

Автор: Akina 19.4.2007, 00:09
Правильно ругается. CX - это WORD, а ты туда байт пытаешься засунуть... вместо 

Код

MOV CX, KOL


напиши

Код

MOV AL, KOL
CBW
MOV CX,AX


или измени определение на

Код

KOL DW 10

Автор: susanin 19.4.2007, 00:35
Akina , спасибо! учту!  smile 

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