DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Assembly (http://www.daniweb.com/forums/forum125.html)
-   -   Some general assembly questions (http://www.daniweb.com/forums/thread20993.html)

unseen Mar 28th, 2005 1:17 am
Some general assembly questions
 
I have been trying to figure these out from the book but couldn't .Im studying correspondence so im also on my own
Thanks alot for any help !


1. if the program TEST.ASM has been designed as an EXE program , can the program TEST.OBJ be executed successfully?




2. What is the meaning of the following directive ?
PAGE 55,132


3. In a program consisting of seperately compiled modules what is the assembler's name for a reference to a label outside the current module?




4. given the following map file:

Start Stop Length Name Class
00000H 00023H 00024H _TEXT CODE
00030H 00031H 00002H _DATA DATA

if this programs code segment were loaded by DOS at absolute address 18400h , what would be the absolute addresses of the data and stack segments ?



Thanks a million !

aj.wh.ca Mar 29th, 2005 5:45 pm
Re: Some general assembly questions
 
Hi,

I left assembly a long time back. So dont remember much. May be u find following usefull but please cross verify.

4) Data segment will start at absolute address 18400H + 00030H i.e. 18430 H. I am not sure of Stack segment since its location is not given in map. My best guess would be STACK at 18440H

3). You simply can access the label by putting 2 colons instead of 1

Tight_Coder_Ex Apr 1st, 2005 4:23 pm
Re: Some general assembly questions
 
if the program TEST.ASM has been designed as an EXE program , can the program TEST.OBJ be executed successfully
No. Object files are simply a binary image of what the compiler determined is the most appropriate interpretation of source. You must then take that/those object files and link them together. For example, I use NASM and it would look like this.

c:\>nasmw -fwin32 Test.asm
c:\>link /entry:Main /subsystem:console /machine:ix86 Test kernel32.lib user32.lib gdi32.lib

So the compiler generates Test.obj from Test.asm and the linker generates Test.exe from Test.obj.

What is the meaning of the following directive ?
PAGE 55,132
If you direct the compiler to emit an assembly listing it will put 55 lines/page and each line will be a maximum of 132 columns

In a program consisting of seperately compiled modules what is the assembler's name for a reference to a label outside the current module?

In the case of NASM, where I declare the variable I have to qualify it with
global
global ScrBuff
ScrBuff db 0
then in the other file where I want to access
extern ScrBuff

if this programs code segment were loaded by DOS at absolute address 18400h , what would be the absolute addresses of the data and stack segments ?

Generally a map files address can be treated as offsets. So all you do is add the start to your destination. I would recommend though you don't use map information as a form of coding because once you start programming in protected systems absolute addresses are somewhat irrelevant.

unseen Apr 5th, 2005 7:22 pm
Re: Some general assembly questions
 
Thanks for the replies guys ,i've figured the answers out :)


All times are GMT -4. The time now is 5:19 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC