•
•
•
•
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
![]() |
•
•
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 11,541
Reputation:
Rep Power: 40
Solved Threads: 972
>>would i do
Not quite. you have to use valid assembly language syntax.
Not quite. you have to use valid assembly language syntax.
•
•
•
•
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}
•
•
Join Date: Oct 2007
Posts: 9
Reputation:
Rep Power: 0
Solved Threads: 0
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.
what do you think is wroung with it?
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 menuwhat do you think is wroung with it?
![]() |
•
•
•
•
•
•
•
•
DaniWeb Assembly Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Similar Threads
- User Input: Strings and Numbers [C] (C and C++ Tutorials)
- Handling Invalid User Input? (C)
- inline assembly getting user input.(djgpp) (Assembly)
- Type Conversion of User Input: (C++)
- Error Checking for user input (Java)
- error checking of user input (C++)
- user input into a string (C++)
- Creating a GUI that accepts user input help (Java)
- Need Help With Error Checking User Input (C)
- filtering bad user input (Java)
Other Threads in the Assembly Forum
- Previous Thread: How do I check
- Next Thread: Beginner Assembly Help



Linear Mode