汇编语言(第3版)- 第一个程序

在这里插入图片描述

第一个程序

一个源程序从写出到执行的过程

编写汇编源程序-》 编译连接-》执行

源程序

assume cs:codesg #假设cs寄存器关联codesg

codesg segement #codesg 为标识符 segement 为关键字, 标示段开始
        mov ax, 0123H
        mov bx, 0456H
        add ax, bx
        add ax,bx
        # 下面2个是固定的,程序返回。也就是返回调用程序。
        mov ax, 4c00H
        int 21H
codesg ends #codesg 为标识符 ends 为关键字, 标示段结束
end # 程序结束

两种指令:

  • 汇编指令,能翻译成机器码的指令。

  • 伪指令,不能翻译成机器码的指令。。给编译器用的。。

    
    段名 segment
    
    ....
    
    段名 ends 
    
    

    为一段位指令。 一个汇编程序由多个段组成,譬如代码段,数据段,栈段。有意义的汇编程序至少有代码段。

    • end 表示程序结束。
    • assume 假设。它假设某个段寄存器 和 程序中的某个段关联。
  • 标号。如codesg。

程序的结构:

至少一个段,一个end。可选的assume

编辑源程序

就用求 2 3 2^3 23示例。文件名1.asm

assume cs:codesg

codesg segment
	mov ax,2
	add ax,ax
	add ax,ax # 也没啥意义,又没有输出
	
	mov ax, 4c00H
  int 21H
	
codesg ends
end

编译、连接

masm 1.asm #编译 生成1.obj
link 1.obj #连接, 生成1.exe
1.exe #运行

以简化的方式进行编译和连接

masm 1; #编译 生成1.obj
link 1; #连接, 生成1.exe
1.exe #运行

谁将可执行文件中的程序装载进入内存并使它运行?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SlBmIddk-1669032365286)(../../../media/image-20210906201329094.png)]

调试程序

debug 1.exe

SA:0 为 PSP开始地址。PSP为256字节,dos利用psp和加载的程序通信。

然后才是加载的程序的入口:CS:IP,

空闲内存区: SA:0

PSP区:SA:0 (DS)

程序区:SA+10H:0 (CS:IP)

debug调试到int 21H 时,需要用p命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值