Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Простой вопрос по ASM   Найти похожие ветки 

 
Новичоккк   (2005-05-31 19:56) [0]

Такой код:
SSEG segment stack
db 256 dup (?)
SSEG ends

CSEG segment
assume CS:CSEG,DS:CSEG,SS:SSEG

start:
lea dx,sl
mov ah,9
int 21h

int 20h

sl db "text",10,13,"$"

CSEG ends
end start

Почему неправильно работает? Уже около часа сижу и не могу понять =( Текст вроде выводится, но перед ним вылезает куча мусора.


 
raidan ©   (2005-05-31 20:15) [1]

Когда я был молодой, то писал так:


; Turbo Assembler    Copyright (c) 1988, 1991 By Borland International, Inc.

; HELLO.ASM - Display the message "Hello World"

; From the Turbo Assembler Users Guide - Getting started

  .MODEL small
  .STACK 100h
  .DATA
HelloMessage DB "Hello, world",13,10,"$"
  .CODE
  mov  ax,@data
  mov  ds,ax                  ;set DS to point to the data segment
  mov  ah,9                   ;DOS print string function
  mov  dx,OFFSET HelloMessage ;point to "Hello, world"
  int  21h                    ;display "Hello, world"
  mov  ah,4ch                 ;DOS terminate program function
  int  21h                    ;terminate the program
  END


 
begin...end ©   (2005-05-31 20:17) [2]

> Новичоккк   (31.05.05 19:56)

Дык этта... ASSUME -- оно, конечно, кульно и рульно. Но это только половина дела. Надо ведь ещё и DS инициализировать. 9h int 21h ищет строку в паре DS:DX.


 
Anatoly Podgoretsky ©   (2005-05-31 20:33) [3]

Возможно он расчитывает на некоторую неявную инициализацию.


 
Новичокк   (2005-05-31 21:52) [4]

2Anatoly Podgoretsky
Да, рассчитывал. Понял что был не прав =)

2begin...end
Спасибо за ответ. Исправил. Добавил:
...
mov ax,CSEG
mov ds,ax
...

И вот еще возник вопрос:
У меня WinXP SP2. Почему то не хотят удаляться некоторые откомпилированные EXE-файлы: "объект используется другим пользователем или программой", хотя программа закрыта (на пример из первого поста такая же реакция). Единственный вариант удалить файл - перезагрузить компьютер и удалить через командную строку (или аналогичным способом), не открывая при этом папку с файлом Explorer"ом. Если открыть папку, а потом закрыть, то через командную строку файл уже не удаляется. Кто-нибудь сталкивался с подобным? Как это можно исправить?



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
3-1116437553
Гость2
2005-05-18 21:32
2005.06.29
Прошлая и следущая запись таблицы.


1-1118066808
TORT
2005-06-06 18:06
2005.06.29
Tstring


3-1116317350
pavel_guzhanov
2005-05-17 12:09
2005.06.29
Как определить, на каком столбце в DBGrid щелкнули мышью


4-1115404206
Switer
2005-05-06 22:30
2005.06.29
Блокировка клавиш


1-1117622042
Веталь
2005-06-01 14:34
2005.06.29
Не выполняются строки кода