实验内容
实验一:
补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数
; 在屏幕上输出内存单元中的十进制两位数
assume cs:code, ds:data
data segment
db 12
db 0,0 ; 前一个字节用于保存商,后一个字节用于保存余数
data ends
code segment
start:
mov ax,data ; 使得ds <-- data段地址
mov ds,ax
mov ah,0
mov al,ds:[0] ; ax <-- data段字节单元的被除数12
mov bl,10
div bl
mov ds:[1],al ; 让商保存到data段注释中指定的单元
mov ds:[2],ah ; 让余数保存到data段注释中指定的单元
mov ah,2
mov dl,ds:[1] ; 使得dl <-- data段中保存的商的字节单元数值
add dl,30h ; 使得dl中的数值转换为数字字符
int 21h
mov ah,2
mov dl,ds:[2] ; 使得dl <-- data段中保存余数的字节单元数值
add dl,30h ; 使得dl中的数值转换为数字字符
int 21h
mov ax,4c00h
int 21h
code ends
end start
实验二
补全程序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 bi,0
mov cx,5
s:mov ax,0
mov al,[bi]
mov bl,10
div bl
mov bx,ax
mov dl,'0'
add dl,bl
mov ah,2
int 21h
mov dl,'0'
add dl,bh
mov ah,2
int 21h
mov ah,2
mov dl,32
int 21h
inc bi
loop s
mov ax,4c00h
int 21h
code ends
end start
运行结果如下
实验三
代码如下
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov cl,10h
mov ch,0
mov ax,0B800h
mov es,ax
mov si,0h
mov di,0h
s: mov al,0
mov al,ds:[si]
mov ah,0
mov ah,00000010B
mov es:[720h+di],ax
mov ah,11110001B
mov es:[720h+di+160D],ax
mov ah,10100100B
mov es:[720h+di+320D],ax
inc si
add di,02h
loop s
mov ax,4c00h
int 21h
code ends
end start
在屏幕中央显示了三种不同字体格式的字符串“ welcome to masm!”
总结与体会
这三个实验都是在屏幕上输出相应的不同的字符串数据,如果不看代码,只看需求。然后自己写程序去实现它,这就会比较有难度,需要自己对于汇编语言有着很深入的了解;
互联网的广大朋友大家好,我是小小甲鱼