【汇编小白】如何在dos编译运行x86汇编代码

首先,题目是这样的。

例1.1 求平均数程序的上机过程。汇编程序要求:在数据段中定义一个5字节数据的数组array,把它们看做有符号数并求它们的平均数,结果保存在avg内存单元。

编写源代码如下

data segment
    array db 1,2,3,4,5
    avg   db ?
    avg_str db 'Average: $'
    result db '?', '$'
data ends

code segment
start:
    assume cs:code, ds:data

    ; 初始化数据段寄存器
    mov ax, data
    mov ds, ax

    ; 初始化累加器
    lea si, array
    mov cx, 5
    xor ax, ax  ; 清零AX寄存器用于累加
next:
    mov dl, [si]
    add al, dl
    inc si
    loop next
    
    ; 计算平均值
    cbw
    mov bl, 5
    idiv bl
    mov avg, al

    ; 将平均值转为ASCII字符
    add al, '0'
    mov [result], al

    ; 打印字符串 "Average: "
    lea dx, avg_str
    mov ah, 09h
    int 21h

    ; 打印结果
    lea dx, result
    mov ah, 09h
    int 21h

    ; 结束程序
    mov ax, 4C00h
    int 21h
code ends

end start

将这段代码写在txt文件中,改后缀名asm放到 dos文件下的masm文件里。

然后在dos黑框框里运行下面的

成功之后在原来的文件夹里,会有一个obj文件,接下来link XXX 【XXX是你的obj文件名】就会有exe文件在文件夹里出现。

在黑框框里输入 文件名.exe 即为运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值