03 Assembly: COM Files and Debug

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น •

  • @ryancabaneles
    @ryancabaneles 9 หลายเดือนก่อน +1

    thank you sir, i hope you create again a video about fasm assembly programming please

  • @0xsha466
    @0xsha466 9 หลายเดือนก่อน +1

    If possible write a blog about every video ❤

  • @nullsemicolon
    @nullsemicolon 9 หลายเดือนก่อน +1

    Great video. Are there are any additional resources you would recommend for learning this?

  • @maxmuster7003
    @maxmuster7003 9 หลายเดือนก่อน

    Good work.

  • @maxmuster7003
    @maxmuster7003 9 หลายเดือนก่อน

    On 80386+ (32 bit CPU) we can use inside the 16 bit Real Address Mode 16 bit instructions and additional 32 bit operands and 32 bit address register, but by default the segment size is limited to 64 kb.
    Personaly i use a special debug version that looks like the debug from MS DOS, but it provide 16 bit and additional 32 bit instructions.

  • @maxmuster7003
    @maxmuster7003 9 หลายเดือนก่อน

    In the *.asm source file we can use labels to specify the offset address of our string, but in debug we have no labels and only the address of 0109 for example.

  • @maxmuster7003
    @maxmuster7003 9 หลายเดือนก่อน

    If DOS start our executable com file or exe file DOS give all memory to our executable. But we don’t know which address is free to use or not free and reserved by DOS, BIOS or drivers. And so before we can get free memory from DOS we have to calculate the amount of memory that our program need at minimum(code, data and stack) and now we can give all other memory back to DOS in the first step to request free memory from DOS in the second step.

  • @maxmuster7003
    @maxmuster7003 9 หลายเดือนก่อน

    We can terminate our com file with a ret instruction, because before our com file is running DOS push a 0000 word to the stack and place the instruction of an "int 20h" to the top of the PSP. If our com file execute our last ret instruction it return to 0000 to the int 20h instruction to terminate our executable, if we do not corrupt the stack and not changing the code segment.

  • @maxmuster7003
    @maxmuster7003 9 หลายเดือนก่อน

    I like to speak hexadecimal values digit by digit and not like decimal values, because hexadecimal values are not based by ten. Else we have B-thousend F- hundred A-ty C for hex BFAC and this sounds bad. So i like to speak for hex 0100: zero, one, zero, zero and not one hundred.