微机原理实验,8086汇编

本文介绍了如何使用8086汇编语言编写程序,实现将特定字符串存储在内存中,然后将其移动到另一位置,并通过DOS调用显示在屏幕上。实验包括了EXE和COM两种版本的程序实现。
摘要由CSDN通过智能技术生成

description

编写一个简单的程序:将“This is my first ASM program-姓名(汉语拼音各人的姓名)”放在DS=1000H,BX=0000H开始的存储器单元中,然后将该内容搬移到BX=0100H开始的单元中,最后将该字符串通过DOS功能调用显示在屏幕上。

EXE版本


; 声明数据段
data segment
    msg db "this is first asm program-ya*******ao$"
    db 1000 DUP(0)     ; 未初始化数据
ends

; 声明栈段
stack segment
    dw   128  dup(0)
ends

; 声明代码段
code segment
start:
    mov ax, data        ; 将数据段的首地址mov到ds寄存器,需要注意的是不能直接mov ds, data,必须需要通过ax寄存器间接赋值,这个是汇编的知识。
    mov ds, ax 
    mov ax, 1000h
    mov es, ax    ; 同时将数据段首地址mov到es(extended segment)
    
    mov si, 0
    mov di, 0
    mov cx, 40          ; 40为字符串msg的长度
    
copy1:                     ; 数据从ds复制到1000:0000
    mov ax, [si]
    mov es:[di], ax    ; si和di在没有显式标明段时默认是ds段,这里es:[di]是1000:0000
    add si, 2
    add di, 2
    loop copy1
        
    mov si, 0    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值