实验结论
1. 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数
代码如下
在屏幕上输出内存单元中的十进制两位数
assume cs:code, ds:data
data segment
db 12
db 0,0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ah,0
mov al,ds:[0]
mov bl,10
div bl
mov ds:[1],al
mov ds:[2],ah
mov ah,2
mov dl,ds:[1]
add dl,30h
int 21h
mov ah,2
mov dl,ds:[2]
add dl,30h
12/10,商为1,余数为2,了解了关于div的相关知识之后即可解决
2. 补全程序t2.asm,完成在屏幕上输出data段定义的5个十进制两位数,数据和数据 之间以空格间隔。
代码如下
assume cs:code, ds:data
data segment
db 12,35,96,55,67
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,5
s: mov ah,0
mov al,ds:[si]
mov bl,10;
div bl
mov bh,ah
mov bl,al
mov ah,2
mov dl,bl
add dl,30h
int 21h
mov ah,2
mov dl,bh
add dl,30h
int 21h
mov ah,2
mov dl,32
int 21h
add si,1
loop s
mov ax,4c00h
int 21h
code ends
end start
就是每次除以10,除了之后,将余数和除数分别输出,即为答案,重复5次
3. 教材实验9(P187)
代码如下
mov ds,ax
mov ax,0b800H
mov es,ax
mov bx,0
mov di,0
mov cx,16
s0: mov ax,[bx]
mov es:[bx+720h][di],ax
mov al,2
mov es:[bx+721h][di],al
inc bx
inc di
loop s0
mov bx,0
mov cx,16
mov di,160
s1: mov ax,[bx]
mov es:[bx+720h][di],ax
mov al,36
mov es:[bx+721h][di],al
inc bx
inc di
loop s1
mov bx,0
mov cx,16
mov di,320
s2: mov ax,[bx]
mov es:[bx+720h][di],ax
mov al,113
mov es:[bx+721h][di],al
inc bx
inc di
loop s2
关键之处是计算相关位置偏量,然后着色
实验结论
这次试验之前我认真观看了相关视频,感触很大,在这次实验给了我很多帮助,并且进一步研读了书本,懂了div和颜色相关的知识。