结语:
这是我写汇编的最后一个实验了。从一开始的思想到后来感觉写个程序其实都是理想当然的,解释也越来越少。相信大家做到这里的时候实力都比我强了吧つ﹏⊂
分析:
该试验包含了12章的所有内容。其实12章就是教我们怎样写出这个程序的。包括do0的妙用(重点)和怎样设置一个中断。这个程序只需要改变一下cx的长度和字符串就ok了
安装的程序:
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset do0 ;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h ;设置es:di指向目的地址
mov cx,offset do0end - offset do0 ;设置cx的传输长度
cld ;设置传输方向为正
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0
mov ax,4c00h
int 21h
do0:
jmp short do0start
db "divideerror!"
do0start:
mov ax,cs
mov ds,ax
mov si,202h
mov ax,0b800h
mov es,ax
mov di,12*160+36*2 ;显示中间位置的偏移地址
mov cx,12
s: mov al,[si]
mov es:[di],al
inc si
add di,2
loop s
mov ax,4c00h
int 21h
do0end:
nop
code ends
end start看不懂的请慢慢跟着书敲啊
测试程序:
assume cs:codesg
codesg segment
mov ax,1000h
mov bh,1
div bh
mov ax,4c00h
int 21h
codesg ends
end 图片:

本文介绍了一个汇编语言程序的实现过程,该程序通过设置中断来显示特定信息。文章详细讲解了如何利用do0标签实现循环显示,并通过改变CX寄存器的值和字符串内容来自定义显示内容。
4734

被折叠的 条评论
为什么被折叠?



