摘要: power idea公司从1975年到1995年的基本情况如下: 编程将data段中的数据按如下格式写入到table段中,并计算21年中的人均收入(取整),结果也按照下面的格式保存在table段中。 代码如下。 代码参考链接:https://blog.csdn.net/misskissC/artic 阅读全文
posted @ 2018-11-06 17:42 迷心迷 阅读(195) 评论(0) 推荐(0) 编辑
摘要: dup是一个操作符,由编译器识别处理,和db、dw、dd等数据定义伪指令配合使用,用来进行数据的重复。 例如 db 3 dup (0) 定义了3个字节,它们的值都是0,相当于db 0,0,0 db 3 dup (0,1,2) 定义了9个字节,相当于db 0,1,2,0,1,2,0,1,2 db 3 阅读全文
posted @ 2018-11-06 17:27 迷心迷 阅读(702) 评论(0) 推荐(0) 编辑
摘要: div是除法指令,使用div做除法时需要注意: 1)除数:有8位和16位两种,在一个寄存器或者内存单元中 2)被除数:默认存放在AX或DX和AX中。如果除数为8位,被除数则为16位,默认在AX中存放;如果除数为16位,被除数为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。 3)结果 阅读全文
posted @ 2018-11-06 17:22 迷心迷 阅读(1501) 评论(0) 推荐(1) 编辑
摘要: 关于DEC公司的一条记录(1982年)如下. 公司名称: DEC 总裁姓名:Ken Olsen 排名: 137 收入:40(40亿美元) 著名产品:PDP(小型机) 数据存放如下图: 到了1988年DEC公司的信息有了如下变化。 1)Ken Olsen在富翁榜上的排名已升至38位; 2) DEC的收 阅读全文
posted @ 2018-11-06 17:16 迷心迷 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 在汇编指令中,通过以下方式指定指令要处理的数据的长度 1) 通过寄存器名指明要处理的数据的尺寸。 例如ax是字操作,al是字节操作 2)没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte。 例如 mov word ptr sd:[0], 1 字单元 阅读全文
posted @ 2018-11-06 17:08 迷心迷 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 8086CPU中,只有bx,bp,si,di这4个寄存器可以用在[...]中进行内存单元的寻址。 这4个寄存器可以单个出现,或只能以4中组合出现:bx+si,bx+di,bp+si,bp+di。 只要在[...]中使用寄存器bp,而指令中没有显性的给出段地址,段地址默认在ss中。 阅读全文
posted @ 2018-11-06 16:58 迷心迷 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1、8086的寻址方式 [idata]用一个常量来表示地址,可用于直接定位一个内存单元 [bx]用一个变量来表示内存地址,可用于间接定位一个内存单元 [bx+idata]用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元 [bx+si]用两个变量表示地址 [bx+si+id 阅读全文
posted @ 2018-11-06 16:51 迷心迷 阅读(399) 评论(0) 推荐(0) 编辑
摘要: si和di是8086CPU中和bx功能相近的寄存器,si和di不能够分成两个8位寄存器来使用。 用si和di实现将字符串"welcome to masm!"复制到它后面的数据区中。 阅读全文
posted @ 2018-11-06 16:38 迷心迷 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 将datasg中的第一个字符串转化为大写,第二个字符串转化为小写。 如果两个字符串的长度一致,程序可以使用[bx+idata]的方式优化如下: 阅读全文
posted @ 2018-11-06 16:25 迷心迷 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1、在代码段中使用数据 dw即“define word”,使用dw定义了8个字型数据。这8个数据是在代码段的偏移0、2、4、6、8、A、C、E、处。程序运行时,它们的地址就是CS:0, CS:2,CS:4,CS:6,CS:8,CS:A,CS:C,CS:E。 也就是说从CS:10H开始才是汇编指令对应 阅读全文
posted @ 2018-11-06 14:16 迷心迷 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 我们需要直接向一段内存中写入内容; 这段内存空间不应存放系统或其他程序的数据或代码,否则写入操作很可能引发错误; DOS方式下,一般情况,0:200~0:2ff空间中没有系统或其他程序的数据或代码; 以后,我们需要直接向一段内存中写入内容时,就使用0:200~0:2ff这段空间。 阅读全文
posted @ 2018-11-06 12:10 迷心迷 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 我们在Debug和源程序中写入同样形式的指令 : "mov al,[0]","mov bl,[1]","mov cl,[2]","mov dl,[3]",但Debug和编译器对这些指令中的"[idata]"却有不同的解释。Debug将它解释为"[idata]"是一个内存单元,"idata"是内存单元 阅读全文
posted @ 2018-11-06 11:49 迷心迷 阅读(203) 评论(0) 推荐(0) 编辑
摘要: CPU执行Loop指令时,要进行两步操作: (cx)=(cx)-1 判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行 通常我们用loop指令来实现循环功能,cx中存放循环次数。 用cx和loop指令向配合实现循环功能的程序框架如下: mov cx,循环次数 s: 循环执行的程序段 lo 阅读全文
posted @ 2018-11-06 11:02 迷心迷 阅读(905) 评论(0) 推荐(0) 编辑
摘要: mov ax,[bx] 功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。即(ax)=((ds)*16+(bx))。 mov [bx],ax 功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。即: 阅读全文
posted @ 2018-11-06 10:56 迷心迷 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 操作系统是由多个功能模块组成的庞大、复杂的软件系统。任何通用的操作系统,都要提供一个称为shell(外壳)的程序,用户(操作人员)使用这个程序来操作计算机系统进行工作。 DOS中有一个程序command.com, 这个程序在DOS中称为命令解释器,也就是DOS的shell。 DOS启动时,先完成其他 阅读全文
posted @ 2018-11-06 10:16 迷心迷 阅读(1113) 评论(0) 推荐(0) 编辑
摘要: 1、一个源程序从写出到最终执行的过程。 1)编写汇编源程序 2)对源程序进行编译连接 使用汇编语言编译程序对源程序文件中的源程序进行编译,生成目标文件;再用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。 可执行文件包含两部分内容 程序(从源程序中的汇编指令翻译过来的机器码)和数 阅读全文
posted @ 2018-11-06 10:05 迷心迷 阅读(1374) 评论(0) 推荐(0) 编辑