No one has voted on any posts yet. Votes from other community members are used to determine a member's reputation amongst their peers.
8 Posted Topics
[QUOTE=GunnerInc;1589407]Try adding a 0 in front of your hex number. it cannot start with a letter 0FFFFFF88H[/QUOTE] Yes exactly. If compiler find a letter it think of a label named FFFFFF88. The H at the end define only how to interpret a numeric value. For example mov ax,10 is different …
This is the section where task switching is made. Has 3 tasks switching one after the other, the calling task (program itself) and taskone and tasktwo. Seems to be a sample program that writes something on the screen. Can not test because I dont have DOS and my WIN XP …
Is the program not working at all or just not as expected ? Is PC working after execution or hangs ?
what you do at io port 61h exactly ? The following code uses BIOS to wait an relative exact amount of time. You can read rdtsc before and after and calculate value. If you want program to step faster you can use 100ms instead of 1 second for measurement. Value …
Sorry, in just a few words I have to say this calculation is bullshit. You can not use this kind of calculation for a serious matter. And its code is very very old. This is the reason you won't find any code in your assembler books. First to describe what …
xor ax,ax is better than mov ax,0 its not faster but take less code as you know, in your bootloader you do not have much space for code xor ax,ax has occupies one byte and mov ax,0 occupies 3 bytes to your questions: your bootloader has the control over your …
You can use this snippet: [CODE] getdriveparms: mov ah,048h ; get more detailed drive information mov dl,[disk] push DS lds SI,[segtmp] mov word [SI],01eh int 13h pop DS mov ax,[SI+018h] ; this is value of bytes per sector [/CODE] You can find detailed information on this function here: [url]http://www.ctyme.com/intr/rb-0715.htm[/url] You …
normally you can use bios interrupt 015h (well known as tsr interrupt) following code will just wait one second: mov cx,000fh mov dx,4240 mov ah,086h int 015h you have to put the timeout in milliseconds in register pair cx:dx 000f4240 = 1000000 (one million micro seconds) you can multiply this …
The End.