随笔分类 -  汇编语言

摘要:# 实验十六 ## 题目: 本次实验任务: 安装一个新的int 7CH 中断例程,为显示输出提供如下功能子程序。 (1)清屏; (2)设置前景色; (3)设置后景色; (4)向上滚动一行。 入口参数说明如下。 (1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚 阅读全文
posted @ 2023-07-28 23:22 三年、 阅读(43) 评论(0) 推荐(0)
摘要:# 实验15 # 题目 安装一个新的 int 9 中断例程,在DOS下,按下’A’键后,除非不再松开,如果松开,就会显示满屏幕的’A’,其他键的功能照常。 代码: ```assembly assume cs:code code segment start: push cs pop ds mov ax 阅读全文
posted @ 2023-07-28 18:01 三年、 阅读(49) 评论(0) 推荐(0)
摘要:# 实验13 ## 第一问: 1. 问题: 编写程序并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。 参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。 以上中断例程安装完成后,对下面的程序进行单步跟踪,尤其注意观察int、i 阅读全文
posted @ 2023-07-27 19:17 三年、 阅读(44) 评论(0) 推荐(0)
摘要:# 实验十二 编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串"divide error!" 中断处理程序 ```assembly assume cs:code code segment start: mov ax,cs mov ds,ax mov si,offset do0; 设 阅读全文
posted @ 2023-07-27 14:04 三年、 阅读(30) 评论(0) 推荐(0)
摘要:# 实验11 编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,描述如下。 名称:letterc 功能:将以0结尾的字符串中的小写字母转变成大写字母 参数:ds:si指向字符串首地址 应用举例: ```assemblyassume cs:codesg datasg segm 阅读全文
posted @ 2023-07-21 16:49 三年、 阅读(27) 评论(0) 推荐(0)
摘要:# 课设一 实验任务:将 [实验7 寻址方式在结构化数据访问中的应用](https://blog.csdn.net/Dr_Cheeze/article/details/127444922?spm=1001.2014.3001.5502) 中提供的公司数据,呈现在屏幕上,效果如下。 ![img](ht 阅读全文
posted @ 2023-07-19 21:30 三年、 阅读(32) 评论(0) 推荐(0)
摘要:# 实验八 1. 分析下面的程序,在运行前思考:这个程序可以正确返回吗? 运行后再思考:为什么是这种结果? 通过这个程序加深对相关内容的理解。 ```assembly assume cs:codesg codesg segment mov ax,4c00h int 21h start: mov ax 阅读全文
posted @ 2023-07-16 14:39 三年、 阅读(48) 评论(0) 推荐(0)
摘要:# 检测点 9.2 1. 补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。 ```assembly assume cs:code code segment start: mov ax,2000H mov ds,ax mov bx,0 s 阅读全文
posted @ 2023-07-14 11:37 三年、 阅读(70) 评论(0) 推荐(0)
摘要:# 9.1 检测点 1. ```assembly assume cs:code data segment ? data ends code segment start: mov ax, data mov ds, ax mov bx, 0 jmp word ptr [bx+1] code ends e 阅读全文
posted @ 2023-07-14 11:08 三年、 阅读(54) 评论(0) 推荐(0)
摘要:# 实验七 ## 题目 Power idea公司从1975年成立一直到1995年的基本情况如下: | 年份 | 收入(千美元) | 雇员(人) | **人均收入(千美元)** | | :--: | : : | : : | : : | | 1975 | 16 | 3 | ? | | 1976 | 22 阅读全文
posted @ 2023-07-12 11:33 三年、 阅读(87) 评论(0) 推荐(0)
摘要:# 第七章 更灵活地定位内存地址 本章主要讲解一些更灵活的定位内存地址的方法和相关的编程方法 1. and 和 or 指令 1. and 指令 * 如:mov al,01100011B and al,00111011B 执行后: al=00100011B * 通过and指令**可将操作对象的相应位设 阅读全文
posted @ 2023-07-10 15:44 三年、 阅读(37) 评论(0) 推荐(0)
摘要:# 实验5 1. 将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。 ```assembly assume cs:code,ds:data,ss:stack data segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h d 阅读全文
posted @ 2023-07-09 15:34 三年、 阅读(19) 评论(0) 推荐(0)
摘要:# 6.3 将数据,代码,栈放入不同的段 1. 注意, 当数据,代码,栈需要的空间超过64kb时(偏移地址的范围),就不能放在一个段内,这是**8086模式的限制** 2. 示例程序如下: ```assembly assume cs:code, ds:data, ss:stack data segm 阅读全文
posted @ 2023-07-09 11:48 三年、 阅读(67) 评论(0) 推荐(0)
摘要:# 检测点 6.1 ## 1. 在代码中使用栈 (1)我们首先要有一段可当作栈的内存空间。如前所述,这段空间应该由系统来分配。我们可以在程序中**通过定义数据来取得一段空间**,然后将这段空间当作栈空间来用。 (2)栈:记住以下三点应该差不多了 1. 任意时刻 ss:sp 指向栈顶 2. 当栈为空时 阅读全文
posted @ 2023-07-09 10:25 三年、 阅读(46) 评论(0) 推荐(0)
摘要:# 实验4 【bx】和 loop 的使用 ## 第一问 1. 编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和"int 21h"。 ```assembly assume cs:code code segment m 阅读全文
posted @ 2023-07-08 16:26 三年、 阅读(87) 评论(0) 推荐(0)