鱼C论坛

 找回密码
 立即注册
查看: 1454|回复: 0

[技术交流] 汇编笔记之4.第一个程序

[复制链接]
发表于 2012-11-25 20:25:41 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 烧点饭 于 2012-11-25 20:26 编辑

1.一个最简单的汇编语言源程序:
assume cs:codesg
codesg segment
  mov ax,0123H
  mov bx,0456H
  add ax,bx
  add ax,ax

  mov ax,4c00H
  int 21H
codesg ends
end

2.assume是“假设”的意思,它是将有特定用途的段和相关段寄存器关联起来的。
3.sgment和ends是一对成对使用的伪指令,也是一对必须用到的伪指令,xxxx segment用来声明该段的名称,中间则是存放汇编指令。
4.end是一个汇编程序的结束标记。
5.一个有意义的汇编程序必须有一个代码段。
6.一个程序结束后,会将CPU的控制权交还给使他运行的程序,这就是程序返回。程序返回的指令如下:
mov ax,4c00H
int 21H
7.汇编程序从写出到执行的过程
编程-->1.asm-->编译-->1.obj-->连接-->加载-->内存中的程序-->运行
8.程序加载到内存中,这个内存区的前256个字节存放的是PSP(程序段前缀),是DOS用来和程序进行通讯的,从256字节向后的空间存放的才是程序。所以,从ds中可以得到PSP的段地址SA,PSP的偏移地址为0,则物理地址为SAX16+0,所以程序可用段地址和偏移地址可以表示为:SA+10H:0



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 08:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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