Cофтпанорама 1990, No. 4 (8) ** ASM_CLUB **  Составитель: Н.Н. БЕЗРУКОВ
***********************************************************************
                                      Приводимые в данном разделе замет-
                                 ки  выражают  мнение авторов,  которое,
                                 естественно, может не совпадать с точ-
                                 кой зрения составителя.
***********************************************************************



                                             Виталий Мирянов


                     ОШИБКА В SOURCER !


     В некоторых случаях при дизассемблировании программ
для процессора 80286  Sourcer выдает в листинг неверный
операнд команды PUSH.

    Например, следующая программа

	.286c

main	segment
	org	0100h
	assume cs:main

start:
	push	0
	int	20h

main	ends
	end start

  скомпилированная в .COM (или .EXE) файл будет дизассемблирована Sourcer как


 a.lst                                              Sourcer Listing v1.72        8-Apr-90    6:27 pm       Page 1


                           PAGE  60,132

                           ;██████████████████████████████████████████████████████████████████████████
                           ;██                                                                      ██
                           ;██                             A                                        ██
                           ;██                                                                      ██
                           ;██      Created:   8-Apr-90                                             ██
                           ;██                                                                      ██
                           ;██████████████████████████████████████████████████████████████████████████

                           .286c


                           code_seg_a      segment
                                           assume  cs:code_seg_a, ds:code_seg_a


                                           org     100h

                           a               proc    far

0100                       start:
0100  6A 00                                push    31h                ; '1'  !!! ОШИБКА !!!
0102  CD 20                                int     20h                ; Program Terminate

                           a               endp

                           code_seg_a      ends



                                           end     start


        Обратите внимание, что коды в листинге выданы правильно !


  08.04.90