User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the Assembly section within the Software Development category of DaniWeb, a massive community of 456,554 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,429 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Assembly advertiser: Programming Forums
Views: 1827 | Replies: 13
Reply
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 11,541
Reputation: Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of 
Rep Power: 40
Solved Threads: 972
Moderator
Featured Poster
Ancient Dragon's Avatar
Ancient Dragon Ancient Dragon is offline Offline
Most Valuable Poster

Re: User input

  #11  
Oct 22nd, 2007
>>would i do
Not quite. you have to use valid assembly language syntax.
<<Freelance Programmer>> << Hobby Site>>
Signature links for sale. PM me for details
Reply With Quote  
Join Date: Oct 2007
Posts: 9
Reputation: tifka is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
tifka tifka is offline Offline
Newbie Poster

Re: User input

  #12  
Oct 22nd, 2007
O yea iam sorry I meant to do commas instead on equal signs. I just didnt change it over when I copyed it.
Reply With Quote  
Join Date: Mar 2005
Posts: 99
Reputation: Evenbit is on a distinguished road 
Rep Power: 4
Solved Threads: 2
Evenbit's Avatar
Evenbit Evenbit is offline Offline
Junior Poster in Training

Re: User input

  #13  
Oct 22nd, 2007
Originally Posted by tifka View Post
Well yea, So I try to do like

 
mov ah,01h
int 16h

Shouldn't that let the user in put whatever he/she wants?


That is a DOS system call... it will only work on Linux if you are running a DOS emulator. Nothing wrong with that, but since you are using Linux, why not run your programs natively? Some Linux ASM resources are here:

http://asm.sourceforge.net/resources.html#docs
http://members.save-net.com/jko@save-net.com/asm/

A "Hello, World!" for Linux looks like this:
; nasm -f elf hello.asm
; ld -o hello hello.o
global _start

section .data
	hello	db	"Hello, World!", 10
	length	equ	$-hello

section .text

_start:
	mov eax, 4		; write to file
	mov ebx, 1		; STDOUT handle
	mov ecx, hello	; our message
	mov edx, length	; size of message
	int 80h			; execute the syscall

	xor ebx, ebx		; send 0 as 'exit code'
	mov eax, 1		; terminate process
	int 80h			; execute the syscall

Nathan.
http://del.icio.us/Evenbit/Linux
while (CPU is present) {some assembly required}
Reply With Quote  
Join Date: Oct 2007
Posts: 9
Reputation: tifka is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
tifka tifka is offline Offline
Newbie Poster

Re: User input

  #14  
Oct 22nd, 2007
Ok thank you. Actually though i found a windows assembly I like a lot. Its called emu8086 www.emu8086.com so I been using that and the only thing I am having trouble with now is my comparing/testing instructions to jump around.

name "menu"
data segment
    pkey db "press any key...$"



s db 'RACECAR'
s_size = $ - m1
  db 0Dh,0Ah,'$'

msg1 db " This is a palindrome.$"
msg2 db " This is not a palindrome.$"

num db "Enter any number from -32768 to 65535.$, or zero to stop"
bin db "Binary form is $"
buffer db 7,?, 5 dub <0>, 0, 0
binary dw ?



ends

stack segment
    dw   128  dup(0)
ends

code segment
menu:
    mov ax, data
    mov ds, ax
    mov es, ax
clear_screen
   print 7,7,0000_1010b,"Press 1 for Hello World."
   print 7,8,0000_1010b,"Press 2 for palindrome."
   print 7,9,0000_1010b,"Press 3 to see the position of your mouse."
   print 7,10,0000_1010b,"Press 4 to exit."
   print 7,11,000_1010b,"Enter the number: "
mov ax,1
int 33h
  
  mov ah,0ah
  int 21h

    cmp ah,1
    je World
    cmp ah,2
    je palindrome
    cmp ah,3
    je mouse
    cmp ah,4
    je stop
    

World:
mov ax,3
int 10h

mov ax,1003h
mov bx,0
int 10h

mov ax,0b800h
mov ds,ax

mov [02h], 'H'
mov [04h], 'e'
mov [06h], 'l'
mov [08h], 'l'
mov [0ah], 'o'
mov [0ch], ','
mov [0eh], 'W' 
mov [10h], 'o'
mov [12h], 'r'
mov [14h], 'l'
mov [16h], 'd'
mov [18h], '!'

mov cx,12
mov di, 03h

c:

mov [di], 00001010b
add di, 2
loop c

mov ah,0
int 16h

jmp menu

Palindrome:
mov ah, 9
mov dx, offset s
int 21h

lea di,s
mov si,di
add si, s_size
dec si

mov cx, s_size
cmp cx, 1
je is_palindrome

shr cx, 1

next_char:

mov al, [di]
mov bl, [si]
mov al, bl
jne not_palindrome
inc di
dec si
loop next_char

is_palindrome:

mov ah, 9
mov dx, offset msg1
int 21h
jmp stop

not_palindrome:

mov ah, 9
mov dx, offset msg1
int 21h
jmp menu



mouse:

print macro x, y, attrib, sdat
LOCAL   s_dcl, skip_dcl, s_dcl_end
    pusha
    mov dx, cs
    mov es, dx
    mov ah, 13h
    mov al, 1
    mov bh, 0
    mov bl, attrib
    mov cx, offset s_dcl_end - offset s_dcl
    mov dl, x
    mov dh, y
    mov bp, offset s_dcl
    int 10h
    popa
    jmp skip_dcl
    s_dcl DB sdat
    s_dcl_end DB 0
    skip_dcl:    
endm

clear_screen macro
    pusha
    mov ax, 0600h
    mov bh, 0000_1111b
    mov cx, 0
    mov dh, 24
    mov dl, 79
    int 10h
    popa
endm

print_space macro num
    pusha
    mov ah, 9
    mov al, ' '
    mov bl, 0000_1111b
    mov cx, num
    int 10h
    popa
endm


jmp mo

curX dw 0
curY dw 0
curB dw 0


mo:
mov ax, 1003h ; disable blinking.  
mov bx, 0        
int 10h

; hide text cursor:
mov ch, 32
mov ah, 1
int 10h


; reset mouse and get its status:
mov ax, 0
int 33h
cmp ax, 0
jne ok
print 1,1,0010_1111b, " mouse not found :-( "
jmp stop

ok:
clear_screen

print 7,7,0010_1011b," note: in the emulator you may need to press and hold mouse buttons "
print 7,8,0010_1011b," because mouse interrupts are not processed in real time.           "
print 7,9,0010_1011b," for a real test, click external->run from the menu.                "
print 10,11,0010_1111b," click/hold both buttons to exit... "


mov ax, 1
int 33h

check_mouse_buttons:
mov ax, 3
int 33h
cmp bx, 3  
je  hide
cmp cx, curX
jne print_xy
cmp dx, curY
jne print_xy
cmp bx, curB
jne print_buttons


print_xy:
print 0,0,0000_1111b,"x="
mov ax, cx
call print_ax
print_space 4
print 0,1,0000_1111b,"y="
mov ax, dx
call print_ax
print_space 4
mov curX, cx
mov curY, dx
jmp check_mouse_buttons

print_buttons:
print 0,2,0000_1111b,"btn="
mov ax, bx
call print_ax
print_space 4
mov curB, bx
jmp check_mouse_buttons



hide:
mov ax, 2 
int 33h

clear_screen

print 1,1,1010_0000b," hardware must be free!      free the mice! "

stop:

mov ah, 1
mov ch, 0
mov cl, 8
int 10h

print 4,7,0000_1010b," press any key.... "
mov ah, 0
int 16h

ret


print_ax proc
cmp ax, 0
jne print_ax_r
    push ax
    mov al, '0'
    mov ah, 0eh
    int 10h
    pop ax
    ret 
print_ax_r:
    pusha
    mov dx, 0
    cmp ax, 0
    je pn_done
    mov bx, 10
    div bx    
    call print_ax_r
    mov ax, dx
    add al, 30h
    mov ah, 0eh
    int 10h    
    jmp pn_done
pn_done:
    popa  
    ret  
endp


end menu

what do you think is wroung with it?
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb Assembly Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the Assembly Forum

All times are GMT -4. The time now is 5:23 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC