🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #853

Re: newbie

#853
From: Matuzalem
Date: Thu, 30 Nov 2006 21:33
81 lines
2873 bytes
robert napisał(a):
> Witam. Napisałem poniższy kod, który się kompiluje, ale już nie likuje.
> 1)    komunikat błędu: _show_txt unresolved external. Wydaje mi się, że nie
> może odszukać procedury show_txt znajdującej się w kod_2 sgement;
> 2)    po usunięciu lini .model small argument napis procedury show_txt musi
> być zadeklarowany jako dword, inaczej progr. się nie skompiluje. Oznacza to,
> że addr
>         zwraca 32bitowy adres [seg+offset], dlaczego ?
>
> Bardzo prosze o pomoc i pozdrawiam.
>
> .model small
> .386
>
> show_txt proto far C count:byte, napis:word, data_sem:word
>
> show_mac macro ile:req, napis:req, data:req
>  push ax
>  push cx
>  push dx
>
>  mov ax,data
>  mov ds,ax
>
>  mov cx,ile
> LOCAL petla:
>  mov ah,9h
>  mov ax,data
>  lea dx,napis
>  int 21h
>  loop petla
>
>  pop dx
>  pop cx
>  pop ax
> endm
>
> Moj_stos segment stack
>  db 256 dup (?)
> Moj_stos ends
>
> Dane segment
>  napis db "Komuunikat", 0dh,0ah,"$"
>  licznik db ?
> Dane ends
>
> kod_1 segment 'code'
>  assume cs:kod_1,ds:Dane
> start:
>  mov ax,seg Dane
>  mov ds,ax
>
>  invoke show_txt, licznik, addr napis, seg napis
>
> kod_1 ends
> end start
>
> kod_2 segment 'code'
>  assume cs:kod_2,ds:nothing
>
>  show_txt proc far C uses ax ds, count:byte, nap:word, data_sem:word
>
>   show_mac
>
>   ret
>
>  show_txt endp
>
> kod_2 ends

Witam

O ile dobrze pamiętam w konwencji wywołań dla języka C (show_txt
proto far C ...) domyślnie występuje znak podkreślenia "_" przed
nazwą funkcji, a ponieważ show_txt nie posiada owego podkreślenia -
czego spodziewa się linker - więc wywala błąd:

_show_txt unresolved external

Pozdrawiam
Technical Details
Message-ID: <1164922431.380032.120000@l12g2000cwl.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!fu-berlin.de!postnews.google.com!l12g2000cwl.googlegroups.com!not-for-mail
References: <ekmuk3$170$1@node5.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!fu-berlin.de!postnews.google.com!l12g2000cwl.googlegroups.com!not-for-mail
From: "Matuzalem" <codemaster_@op.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: newbie
Date: 30 Nov 2006 13:33:51 -0800
Organization: http://groups.google.com
Lines: 86
Message-ID: <1164922431.380032.120000@l12g2000cwl.googlegroups.com>
References: <ekmuk3$170$1@node5.news.atman.pl>
NNTP-Posting-Host: 212.244.115.33
Mime-Version: 1.0
X-Trace: posting.google.com 1164922436 3022 127.0.0.1 (30 Nov 2006 21:33:56 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Thu, 30 Nov 2006 21:33:56 +0000 (UTC)
In-Reply-To: <ekmuk3$170$1@node5.news.atman.pl>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1) Gecko/20061010 Firefox/2.0,gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: l12g2000cwl.googlegroups.com; posting-host=212.244.115.33;   posting-account=HFFdEQ0AAACI08bdAnMScVqwVEj2ucOg
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit