Sponsored Content
Top Forums Programming Ok i have a small assembly question Post 302636823 by Errigour on Tuesday 8th of May 2012 03:51:11 AM
Old 05-08-2012
Ok i have a small assembly question

I have this small program that runs with the flat assembler. My problem is that at the receive line function it receives the line and if there isn't a $ typed at the end of the user input the program displays a lot of strange stuff, sometimes beeps and then it seems to terminate without causing any damage to m computer. My question is how do I receive a string of characters with assembly maybe with that function without requiring that the user type $ at the end of his/her input.

Code:
ORG 100h ; Start at 100h memory DOS 16 bit .com files
;USE16    ; Use 16 bit mode.
        ; Print line function $ is new line
        ; ah says print line dx is the line to print

        mov ah, 00001001b
        mov dx, msg
        ; Jump to Display It
        jmp DisplayHelloWorld!

DisplayHelloWorld!:
        int 21h

        ; Receive line function
        mov ah, 3fh
        mov dx, Receive
        mov cx, 30
        mov bx, 0
        int 21h

        ; Compare 10d with the value of ah
        cmp dx, Receive
        ; Jump if equal
        je PrintName
        ; Jump if not equal
        jne UnderstandAssembly

UnderstandAssembly:
        ; Call to 21h, again prints line Name
        mov ah, 09h
        mov dx, und
        int 21h

PrintName:
        ; Call to 21h, again prints line Name
        mov ah, 09h
        mov dx, Receive
        int 21h

        ; Tell program to stay alive
        mov ah, 01h
        int 21h
        ; Exit program
        mov ah, 4ch
        int 21h

msg db 'Enter Name: ', '$' ; 0Ah is new line feed, '$' is end of line
und db 'Dx changed before cmp dx, Receive' , '$'
Receive db 30d

 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
copt(1) 							z88 Development Kit							   copt(1)

NAME
copt - peephole optimizer SYSNOPIS
copt file ... DESCRIPTION
copt is a general-purpose peephole optimizer. It reads code from its standard input and writes an improved version to its standard output. copy reads the named files for its optimizations, which are encoded as follows: <pattern for input line 1> <pattern for input line 2> ... <pattern for input line n> = <pattern for output line 1> <pattern for output line 2> ... <pattern for output line m> <blank line> Pattern matching uses literal string comparison, with one exception: ``%%'' matches the ``%'' character, and ``%'' followed by a digit matches everything up to the next occurrence of the next pattern character, though all occurrences of %n must denote the same string. For example, the pattern ``%1=%1.'' matches exactly those strings that begin with a string X, followed by a ``='' (the first), followed by a second occurrence of X, followed by a period. In this way, the input/output pattern mov $%1,r%2 mov *r%2,r%2 = mov %1,r%2 commands copt to replace runs like mov $_a,r3 mov *r3,r3 with mov _a,r3 Note that a tab or newline can terminate a %n variable. copt compares each run of input patterns with the current input instruction and its predecessors. If no match is found, it advances to the next input instruction and tries again. Otherwise, it replaces the input instructions with the corresponding output patterns, pattern vari- ables instantiated,and resumes its search with the first instruction of the replacement. copt matches input patterns in reverse order to cascade optimizations without backing up. BUGS
Errors in optimization files are always possible. SEE ALSO
z88dk(1), z88dk-zcc(1), z88dk-z80asm(1), z88dk-appmake(1), z88dk-copt(1). AUTHOR
z88dk was written by Dominic Morris <dom@z88dk.org>, and others. 01 December 2009 copt(1)
All times are GMT -4. The time now is 02:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy