汇编学习-实验12解析

本文记录了作者在完成汇编语言实验12的过程中,对程序入口、字符串传递的理解及遇到的问题。通过解析王爽汇编语言书中的指导,作者详细介绍了将cs传给ds的原因,并指出在传递字符串时应使用mov es:[di],al而非mov [di],al。此外,作者建议将测试代码封装为函数以方便中断后调用。" 74157382,6136340,Java爬取云锁机制网站数据实战,"['Java开发', '网页爬取', '数据抓取', '网络编程', '云安全']

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

按照汇编语言书上的指导,自己重新梳理了一下,完成实验十二。这中间遇到一些问题,网上搜了一些帮助,然后自己又多次调试和对比书上的答案,做了一番总结。

先将答案贴上:

assume cs:code
code segment
start:
	;do0 install programm
	; set ds:si directing the source address
	mov ax,cs	;keep the pointer is the start
	mov ds,ax
	mov si,offset do0

	; set es:di directing the destination address
	mov ax,0
	mov es,ax
	mov di,0200h

	mov cx,offset do0ends-offset do0
	cld		;si and di are forward increment
	rep movsb

	;set interrupt vector table
	mov ax,0
	mov es,ax
	mov word ptr es:[0*4],200h
	mov word ptr es:[0*4+2],0

	call divExample
	mov ax,4c00h
	int 21h

do0:
	jmp short do0start	
	db 'Overflow!'
do0start:	
	;show string "Overflow!"
	mov ax,cs
	mov ds,ax
	mov si,202h
	
	mov ax,0b800h
	mov es,ax
	mov di,12*160+36*2
	
	mov cx,9
s:
	mov al,[si]
	mov es:[di],al
	inc si
	add di,2
	loop s

	mov ax,4c00h
	int 21h
do0ends:
	nop
divExample:
	mov ax,1000
	mov bh,1
	div bh
	ret
code ends
end start
关于实验12的总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值