【汇编语言 王爽】实验13代码

这篇博客详细介绍了在Windows 10的DOSBox环境中进行汇编语言实验的过程,包括实验1、实验2和实验3的代码展示及运行结果。读者可以从中了解到如何在DOSBox中执行汇编程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验(1)

lab13-1.Asm 代码:

assume cs:code
code segment
start:

;把int 7ch中断例程安装到0:200h处
;ds:si指向将要复制的程序地址
mov ax,cs
mov ds,ax
mov si,offset show_str

;es:di指向目的地址
mov ax,0
mov es,ax
mov di,200h

;设置循环次数cx
mov cx,offset show_str_end - offset show_str

;设置si di递增
cld

;将字符串从di:si复制到es:di
rep movsb


;设置中断向量表
;es指向0
mov ax,0
mov es,ax

;目的偏移地址为:4*n 4*n+2
mov word ptr es:[4*7ch],200h
mov word ptr es:[4*7ch+2],0

;安装程序返回
mov ax,4c00h
int 21h

;编写int 7ch中断例程
;功能:显示一个以0结尾的字符串
;参数:dh=行号(*160)dl=列号(*2)cl=颜色 ds:si指向字符串首地址
;返回:无

show_str:
push ax
push bx
push cx
push dx
push si
push di
push es

;设置es:di指向目的地址
mov ax,0b800h
mov es,ax
mov di,0 ;di必须先设置为0

;先用bx来保存参数(dh行号、dl列号)
mov bx,dx

;求列dl偏移量
mov ax,2
mov dh,0
mul dx
add di,ax ;结果低16位在ax中存放,故将di加上列偏移量

;求行dh偏移量
mov ax,160
mov dl,bh
mov dh,0
mul dx
add di,ax ;结果低16位在ax中存放,故将di加上行偏移量

;先用bl来保存颜色参数cl
mov bl,cl

;ds:si指向要复制的字符串首地址
copy:
mov cl,[si]
mov ch,0
jcxz ok
mov es:[di],cl ;放字符cl进去
inc di
mov es:[di],bl ;放颜色bl进去
inc s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值