目录

实验任务

题目如下

第一和第二题运行结果相同,因此一起作答,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
assume cs:code
code segment
mov bx,0
mov ds,bx
mov cx,40h
next:
mov ds:[bx+200h],bx
inc bx
loop next
mov ax,4c00h
int 21h
code ends
end

运行结果

第三题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
assume cs:codesg
codesg segment
mov ax,cs
mov ds,ax
mov ax,0020H
mov es,ax
mov bx,0
mov cx,23
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00H
int 21H
codesg ends
end

运行结果如下:

2、编写程序,统计1+3+5+……+99,结果存入DX寄存器中。

程序如下:

1
2
3
4
5
6
7
8
9
10
11
assume cs:code1
code1 segment
mov cx,99
mov dx,0
s: add dx,cx
loop s
mov ax,4c00h
int 21H
code1 ends
end

调试程序,查看指令是否写入程序:

运行程序,查看结果:

Dx=1356H,转换成十进制就是4950,运算结果符合预期

3、将0FFFE0~0FFFFFH中的16个字,顺序复制到00200H~0021FH中,

程序如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
assume cs:code1
code1 segment
mov ax,0FFFEH
mov ds,ax
mov ax,0020H
mov es,ax
mov bx,0
mov cx,16
s: mov ax,ds:[bx]
mov es:[bx],ax
add bx,2
loop s
mov ax,4c00H
int 21H
code1 ends
end

调试程序,查看指令是否写入程序:

运行程序,查看结果:

两个内存段的结果相等,说明程序运行正确