鱼C论坛

 找回密码
 立即注册
查看: 3406|回复: 2

[学习笔记] 汇编语言上天之路20-23课(编译过程)

[复制链接]
发表于 2017-7-3 11:06:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 阿西吧 于 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了
       

评分

参与人数 2鱼币 +3 收起 理由
小甲鱼 + 1
康小泡 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-3 11:28:27 | 显示全部楼层
好好排版一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-3 16:28:25 | 显示全部楼层

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 20:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表