Главная страница
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.029 c
1-1117914175
lookin
2005-06-04 23:42
2005.06.29
Правая вертикальная ось и Excel


3-1116176358
Екатерина
2005-05-15 20:59
2005.06.29
Rave и БД


14-1117038559
Piter
2005-05-25 20:29
2005.06.29
Авария в Москве - повод подвинуть Чубайса


14-1117084732
reticon
2005-05-26 09:18
2005.06.29
Помогите найти песенку...


1-1117806225
Eraser
2005-06-03 17:43
2005.06.29
Принцип распознавания графических смайликов