标签:oop 字符串 .com 循环 add 红色 data 图片 绿色
1.补全程序1.asm完成在屏幕上输出内存单元中的十进制两为数
; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segment db 12 db 0,0 ; 前一个字节用于保存商,后一个字节用于保存余数 data ends code segment start: mov ax,data mov ds,ax ; 补全指令,使得ds <-- data段地址 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
输出结果为
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 cx,5 mov bx,0 s: mov ax,0 mov dl,10 mov al,[bx] div dl mov dl,al mov dh,ah mov ah,2 add dl,30h int 21h mov ah,2 mov dl,dh add dl,30h int 21h mov ah,2 mov dl,20h int 21h mov ah,2 mov dl,20H int 21H inc bx loop s mov ax,4c00h int 21h code ends end start
输出结果为
3.根据材料编程在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘welcome to masm!‘
; p187 实验9 assume ds:data, cs:code data segment db ‘Welcome to masm!‘ db 2H,24H,71H ;字符串属性值 data ends code segment start: mov ax,data mov ds,ax ;字符串及属性值所在段的段地址送入ds mov ax,0b800H mov es,ax ;80×25彩色字符模式显示缓冲区段地址送入es mov si,06E0H ;es的偏移地址 mov bx,0 ;属性值的偏移地址 mov cx,3 s: mov dh,cl mov cx,16 mov di,0 s1: mov al,ds:[di] mov es:[si],al inc si mov al,ds:[bx+16] mov es:[si],al inc di inc si loop s1 inc bx mov cl,dh add si,0080H loop s mov ax,4c00h int 21h code ends end start
实验结果
实验结论:
实验一二更加了解div的使用
更加熟练运用循环,双重循环压栈保护cx理解更深刻。
标签:oop 字符串 .com 循环 add 红色 data 图片 绿色
原文地址:https://www.cnblogs.com/pupulalap/p/10090995.html