Ok i have a small assembly question


 
Thread Tools Search this Thread
Top Forums Programming Ok i have a small assembly question
# 8  
Old 05-10-2012
Quote:
Originally Posted by Errigour
Is there a lower level way to add '$' to the end of receive?
What do you mean by a "lower level way" why cant you define "Receive" to be a 30 byte label and fill it with $ signs...which the code below does.
Code:
Receive db 30 dup('$')

# 9  
Old 05-10-2012
how to post a query?
# 10  
Old 05-10-2012
click new thread and post your question

Image

Read the rules, before posting your question

The UNIX and Linux Forums - Forum Rules
# 11  
Old 05-10-2012
I was asking if someone would show me a way without using dup. Is is possible to do that just using the x86 instruction set?

---------- Post updated at 02:13 AM ---------- Previous update was at 02:11 AM ----------

Also if someone enters exactly 30 characters then it beeps.

Ok I fixed the beeping problem but I still haven't learned how to concatenate.
The fix is:
Code:
        ; Put this right after line 19
        mov ah, 09h
        mov dx, ENDLINE
        int 21h

ENDLINE db '$' ; was added

I basically send that after I send the variable receive and there are no problems. So solved but I would like to kow how to concatenate with assembly also if you want to post something.




I just thought of a better way to question my concat question.
How can I make dx + 30 = '$'
or maybe how can I make receive[30] = '$'

Last edited by Errigour; 05-10-2012 at 03:52 AM..
# 12  
Old 05-10-2012
Quote:
Originally Posted by Errigour
I was asking if someone would show me a way without using dup. Is is possible to do that just using the x86 instruction set?
Well assembly aint C where libc guarantees that every literal will be suffixed with a NULL terminator...if you program in assembly language then learn to do most of the stuff yourself unless there is a lib of assembly routines that you can draw from...and there is no instruction in the x86 set that you can use for this because you need to know the last character of the entered string...and without that knowledge it is impossible.
Quote:
Originally Posted by Errigour
---------- Post updated at 02:13 AM ---------- Previous update was at 02:11 AM ----------
Also if someone enters exactly 30 characters then it beeps.
Again the problem is not when the no of characters entered equals 30 but when someone enters less than 30 characters...and by initialising "Receive" to all $ signs you basically eliminate this issue.
Quote:
Originally Posted by Errigour
Ok I fixed the beeping problem but I still haven't learned how to concatenate.
If string length is equal to 30 then you can do this too...
Code:
Receive db 30 dup('$'),'$'

Quote:
Originally Posted by Errigour
The fix is:
Code:
        ; Put this right after line 19
        mov ah, 09h
        mov dx, ENDLINE
        int 21h

ENDLINE db '$' ; was added

Why waste resources just for adding a $ to "Receive+30" when the db directive shown above does it for you.
Quote:
Originally Posted by Errigour
I basically send that after I send the variable receive and there are no problems. So solved but I would like to kow how to concatenate with assembly also if you want to post something.
Unless you know the last character of the entered string it isnt possible to emulate the C function strcat...so forget about it.
Quote:
Originally Posted by Errigour
I just thought of a better way to question my concat question.
How can I make dx + 30 = '$'
or maybe how can I make receive[30] = '$'
Again you are confused between a location dx+30 and its contents [dx+30] so first get that straight...the db directive shown above sets Receive[30]='$' or [dx+30]='$'
# 13  
Old 05-10-2012
Well I solved my problem I was just hoping you would show me how to concatenate. Thanks anyway.
# 14  
Old 05-10-2012
Quote:
Originally Posted by Errigour
Well I solved my problem I was just hoping you would show me how to concatenate. Thanks anyway.
Well i showed you the one and only way it can be done...
Code:
Receive db 30 dup('$'),'$'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Sparc Assembly

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I am having a hard time with this assignement i cant get the pfib value to print out the fib sequence. ... (1 Reply)
Discussion started by: kenjiro310
1 Replies

2. Programming

vga assembly question

Im trying to make a vga program for linux Im wondering if anyone knows of a simple document on the subject or if someone could show me some basics. What system calls should I use what parameters should I give them. How do I draw a line of pixels green after in vga mode. I prefer nasm but I can use... (2 Replies)
Discussion started by: Errigour
2 Replies

3. Shell Programming and Scripting

Small fast question

just to confirm du from sh show sizes as multiples of 512 byte right? (4 Replies)
Discussion started by: Nick1097
4 Replies

4. Programming

A small question about fork()

Hello experts, I am using fork() in my code but I am confused which output comes first child or parent? I did the following code .My book shows parent first but my linux shows child first.Can anyone tell me why? #include <stdio.h> int main(){ int pid; printf("I am original process with pid... (5 Replies)
Discussion started by: mlhazan
5 Replies

5. Programming

A small question about file descriptor

Can any body tell me when I put close(2), why the code does not show any out put? #include <stdio.h> #include <fcntl.h> #include <errno.h> int main(){ int fd1,fd2,fd3,fd4; close(2); fd1=open("test1.txt",O_WRONLY |O_CREAT | O_TRUNC,0744); fprintf(stderr,"fd1 = %d\n",fd1); ... (5 Replies)
Discussion started by: mlhazan
5 Replies

6. UNIX for Dummies Questions & Answers

Small question regarding SSH

I am looking for some model like this: My Computer ------------- Intermediate Server (IS) ------------- Own Server I must be able to ssh into the Intermediate Internet Server which is generally an online version of SSH service through which I will connect to Own Server. I was the IS to... (2 Replies)
Discussion started by: Legend986
2 Replies

7. Shell Programming and Scripting

A small minix question

First af all hi. i want to create a batch script which inform when users log in last time on system or if they are online when they logged in. I want ot use a file .users which has the usernames of users. i want to print for example peter is ONLINE: Logged in on Wed Feb 11 07:47 alex... (2 Replies)
Discussion started by: sasa
2 Replies

8. Shell Programming and Scripting

small question regarding substr()

Hello.. I am doing some awk-ing and among all I use substr inside it.. I have: ....substr($0,60,37) meaning as U all know take from 37 char. from point 60.. can I put it like this substr($0,60,end of line) meaning take it from point 60 and take all characketrs in that line until line... (2 Replies)
Discussion started by: amon
2 Replies

9. Shell Programming and Scripting

small question of echo | grep command

Hi, i've got the following: a=`echo $b | grep '^.*/'` i'm storing in the variable the value of the variable b only if it has a / somewhere. It works, but i don't want to print the value. How do i give the value of b to the grep command without the echo? thanks! (5 Replies)
Discussion started by: kfad
5 Replies

10. Shell Programming and Scripting

small question

Hi there, I found the following script on the net, i like to use it as a standard template for new scripts. But i do not understand the meaning of the last line, can anybody explain what going on on the last line vflag=off filename= while getopts vf: opt do case "$opt" in v)... (9 Replies)
Discussion started by: janr
9 Replies
Login or Register to Ask a Question