阿西吧 发表于 2017-7-3 11:06:46

汇编语言上天之路20-23课(编译过程)

本帖最后由 阿西吧 于 2017-7-3 16:31 编辑

第二十课
        汇编语言编译的过程:源程序-》编译-》目标文件-》连接-》EXE

        assume(假设)         cs:codeseg        (将codeseg指向cs段)
        codeseg segment
                xxxx
                xxxx

                mov ax,4c00h
                int 21h (这是程序返回的代码,DOS下是单任务系统,所以要返回给另一个程序(command))
        codeseg ends(这是一个段结束的标志)
        end (编译结束的标志)               


第二十二课
        编译连接过程(MASM来编译,LINK来连接)
        DOS命令c:\>cd xx 是打开xx文件夹
        MASM编译生成.OBJ的目标文件
        LINK连接将.BOJ生成为exe文件
        简化编译连接可以在c:\masm 1.asm;(加上分号就可以直接编译)
        用ML 1.asm直接编译连接成exe


第二十三课
        在DOS单任务系统下,是command将程序加载入内存,然后command将cs和ip指向程序的第一条命令,程序结束后,command又将继续运行.
       
        程序加载过程:
                                1.找到一段足够大的空闲地址空间(SA:0000)。
                                  2.在这个空间的前256个字节中创建一个PSP的程序段前缀的数据区用来和DOS通信
                                  3.所以程序的开始地址就是SA+10H:0000,psp和程序起始地址一样,但是段地址不一样
                                  4.ds会指向PSP的段地址(SA),初始化后会设置CS:IP指向SA+10H : 0000这个地址


        用debug加载程序的格式:c:\debug 1.exe
        debug记载程序之后cx存放的是程序的长度(机器码所占的字节数)
        Debug调试程序时候,到int 21指令时要用p命令来调试,不能用t了
       

康小泡 发表于 2017-7-3 11:28:27

好好排版一下

阿西吧 发表于 2017-7-3 16:28:25

康小泡 发表于 2017-7-3 11:28
好好排版一下

{:10_266:}好的
页: [1]
查看完整版本: 汇编语言上天之路20-23课(编译过程)