博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验九
阅读量:5086 次
发布时间:2019-06-13

本文共 2372 字,大约阅读时间需要 7 分钟。

一.实验内容

1. 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 。

源代码:

; 在屏幕上输出内存单元中的十进制两位数assume cs:code, ds:datadata segment     db 12     db 0,0   ; 前一个字节用于保存商,后一个字节用于保存余数data endscode segmentstart:      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 21hcode endsend start

实验结果:

 

2. 补全程序t2.asm,完成在屏幕上输出data段定义的5个十进制两位数,数据和数据 之间以空格间隔。

assume cs:code, ds:datadata segment     db 12,35,96,55,67data endscode segmentstart:      mov ax,data      mov ds,ax       ; 补全指令,使得ds <-- data段地址      mov bx,0      mov cx,5            s:mov ah,0      mov al,ds:[bx]   ; ax <-- data段字节单元的被除数12      mov dl,10      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,0      int 21h            inc bx      loop s            mov ax,4c00h      int 21hcode endsend start

实验结果:

3.教材实验9

代码:

assume ds:data, cs:codedata segment       db 'welcome to masm!'         db 2H,24H,71H          ;字符串属性值data endscode segmentstart:  mov ax,data        mov ds,ax            ;字符串及属性值所在段的段地址送入ds                mov ax,0b800H        mov es,ax            ;80×25彩色字符模式显示缓冲区段地址送入es                mov cx,3        mov bx,0        mov si,0        mov di,16             s1:push cx         mov cx,16              s2:mov al,ds:[bx]         mov ah,ds:[di]         inc bx                  mov es:[si],al         inc si         mov es:[si],ah         inc si         loop s2                  pop cx         mov bx,0         inc di         add si,0080h         loop s1                 mov ax,4c00h        int 21hcode endsend start

实验结果:

二.实验总结

这次实验主要是研究怎么在屏幕上输出内容。第一个任务比较简单,而且老师给的代码中注释的提示很详细,所以并不是很难。

第二个任务与第一个任务有些相似,所以在第一个代码上稍作修改就能完成。

主要是第三个任务,涉及到是否闪烁、背景色,高亮、还有前景色等等。代码中使用了两次循环,所以一开始我不知道要怎么处理cx的值才能顺利进行,但是发现利用栈,将原cx的值压入栈作为暂存就可以解决这一问题。所以在第三个实验中,我收获颇丰。

转载于:https://www.cnblogs.com/xcss831/p/10098448.html

你可能感兴趣的文章
软件工程团队作业3
查看>>
python标准库——queue模块 的queue类(单向队列)
查看>>
火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题...
查看>>
深入理解JVM读书笔记--字节码执行引擎
查看>>
vue-搜索功能-实时监听搜索框的输入,N毫秒请求一次数据
查看>>
批处理 windows 服务的安装与卸载
查看>>
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>