自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (9)
  • 收藏
  • 关注

原创 第九章实验九

题目:编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串welcome to masm!分析:根据书上的背景知识,我们知道绿色 对应的属性字节是0000 0010即02h,绿底红色的属性字节是0010 0100即24h,白底蓝色的属性字节是0111 0001即71h。第二是计算屏幕中央的行数和列数的值,我们从材料了解到实验用到的是80*25彩色字符模式,其显示器可以显示25行,每行8

2009-08-31 16:22:00 1168

原创 第九章实验8

题目:分析下面的程序,在运行前思考:这个程序可以返回吗?运行后分析:为什么会是这个结果?assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0 s: nop nop mov di,offset s mov si,offs

2009-08-31 09:50:00 508

原创 检查点9.3

 题目:补全编程,利用loop指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。源代码:assume cs:codesg codesg segment start: mov ax,2000h mov ds,ax mov bx,0 s: mov cl,[bx]

2009-08-29 23:15:00 571

原创 检查点9.2

 题目:补全编程,利用jcxz指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。assume cs:codesgcodesg segment start: mov ax,2000h mov ds,ax mov bx,0 s: _________ ____

2009-08-29 22:43:00 816

原创 检查点9.1的三道题

 题目(1):程序如下,如要使程序中的jmp指令执行后,cs:ip指向程序的第一条指令,在datasg段中应该定义哪些数据。assume cs:codesg,ds:datasgdatasg segment ?datasg enscodesg segment start: mov ax,datasg mov ds,a

2009-08-29 20:58:00 767

原创 第九章问题1

问题:有如下程序,填写两条指令,使该程序在运行中将s处的一条指令复制到s0处。assume cs:codesgcodesg segment s: mov ax,bx mov si,offset s mov di,offset s0 ________________ ________________ s0:

2009-08-28 15:25:00 656

原创 第八章实验七(目前的最终版)

题目:Power idea公司从1975成立一直到1995年的基本情况被定义到了datasg中,编程将datasg段中的数据写入到table段中,并计算21年中的人均收入(取整),结果保存到table段中写在前面:因为对之前实验七的三个版本都不满意,在做了一些参考之后,有了这个版本分析:刚开始时一看到那张表就吓了一下,不过冷静分析后发现,其实也不难。我这里用的是分模块处理,同时运用到了栈。

2009-08-28 10:48:00 1586

原创 第八章实验7的第二种做法(用栈做传递)

 只用一个循环,但是用栈来传递。源代码:assume cs:codesgdatasg segment db 1975,1976,1977,1978,1979,1980,1981,1982,1983 db 1984,1985,1986,1987,1988,1989,1990,1991,

2009-08-28 09:32:00 517

原创 第八章实验7的第二种做法(不用栈做传递)

 只用一个循环assume cs:codesgdatasg segment db 1975,1976,1977,1978,1979,1980,1981,1982,1983 db 1984,1985,1986,1987,1988,1989,1990,1991,1992 db

2009-08-28 00:30:00 491

原创 第八章实验七

题目:Power idea公司从1975成立一直到1995年的基本情况被定义到了datasg中,编程将datasg段中的数据写入到table段中,并计算21年中的人均收入(取整),结果保存到table段中分析:刚开始时一看到那张表就吓了一下,不过冷静分析后发现,其实也不难。我这里用的是分模块处理,同时运用到了栈。以table的0~f空间为例说明。即:首先要准确定位datasg段取得年份,写入t

2009-08-27 16:36:00 742

原创 第八章问题1

 题目:用div计算data段中第一个数据除以第二个数据后的结果,商存在第三个数据的存储单元中。源代码:assume cs:codesg ,ds:datasgdatasg segment dd 100001 dw 100 dw 0 datasg endscodesg segment start: mov ax,d

2009-08-27 00:27:00 458

原创 8.6寻址方式的综合运用

assume cs:codesg,ds:datasgdatasg segment db dec db ken oslen dw 137 dw 40 db pdp datasg endscodesg segment start: mov ax,datasg mov ds,ax

2009-08-26 17:50:00 649

原创 第七章问题7.9

编程:将datasg段中的每个单词的前4个字母改为大写字母。解答:思路和上一篇一样,用自定义的堆栈段来存放需要存储的临时变量。只是要注意的是si的初始值要改为3,因为每个单词的前3个字符不是属于单词的,单词的开始数字为3(从0数起)。源代码:assume cs:codesg,ds:datasgdatasg segment db 1. display

2009-08-26 12:22:00 654

原创 问题7.8有关循环改进的问题

在上一篇中我们使用了ds来存储外层循环的值,等到内存循环结束之后,再把外层循环的值从dx中提取出来,送还给cx中。但是如果dx也被占用了呢?虽然我们还可以使用别的寄存器,但是cpu的寄存器还是有限的。如8086cpu就只有14个寄存器。在前一篇文章中,si,cx,ax,bx都不能用来存储cx的值,因为这些寄存器在循环中也可能要被使用到。cs,ip,ds不能用,因为cs:ip时刻都是指向当前的指令,

2009-08-26 10:47:00 406

原创 第七章 问题7.7和7.8

 题目:将datasg段中的每个单词改写成大写字母分析:这里要知道的两个问题。1:知道如何把字母转换成大写。把其ascii码的第五位设置成0就是大写,设置成1就是小写。2:在datasg段定义的4个单词,每个的存储长度都是10h。然后可以用二维数组的概念来理解。其三:这里要应用到[bx+si+idata]的形式。源代码:assume cs:codesg,ds:datasgdat

2009-08-25 16:51:00 463

原创 第七章 问题7.6

题目:将datasg段中的每个单词的头一个字母改为大写字母。分析:这里要知道的两个问题。1:知道如何把字母转换成大写。把其ascii码的第五位设置成0就是大写,设置成1就是小写。2:在datasg段定义的6个单词,每个的存储长度都是10h。然后可以用二维数组的概念来理解。其三:这里可以看出每个单词的首字母都是位于3这个位置(从0数起)。源代码:assume cs:codesg,ds:d

2009-08-25 16:13:00 429

原创 问题7.2

题目:用si和di将字符串welcome to masm! 复制到他后面的数据区中。解答:第一种是没用si和di的,源代码如下1:assume cs:codesg,ds:datasgdatasg segment db welcome to masm! db ................ datasg endscodesg segmen

2009-08-25 00:17:00 479

原创 第七章大写字母小写字母的转换问题

题目:将datasg中的第一个字符串转化为大写,第二个字符串转换为小写。分析:小写字母的ASCII码值比大写字母的ASCII码值大20H,也就说把大写字母加上20h就是小写字母了,把小写字母减去20h就是大写字母。但是问题的关键在于我们要先判断者这个字母是不是大写或者小写,确定其大小写之后,才能做出相应的处理。然而我们目前已经学习到的指令还不能作出这样的判断.另一种是除了第5位外,大写字母和小

2009-08-24 16:49:00 2411

原创 对第六章实验任务(6)的修正

对第六章实验任务(6)的修正,上篇中得到的结果并没有逆序排序,现在修正如下:源代码: assume cs:codesg a segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh a ends b segment dw 0,0,0,0,0,0,0,0 b ends codesg segment

2009-08-24 15:04:00 477

原创 第六章实验任务(6)

题目:编写程序,用push指令将a段中的前8个字型数据逆序存储到b段中。解答:源代码:assume cs:codesga segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffha endsb segment dw 0,0,0,0,0,0,0,0b endscodesg segment

2009-08-24 09:38:00 547

原创 第六章实验任务(5)

题目:编写程序,将a段和b段中的数据依次相加,将结果存在c段中。解答:这道题有两个思路,第一种是不用栈来传递数据,而是借用ds、ss和es来完成。源代码1:assume cs:codesga segment db 1,2,3,4,5,6,7,8a endsb segment db 1,2,3,4,5,6,7,8b endsc se

2009-08-23 23:39:00 573

原创 第六章实验任务(3、4)

题目:将下面的程序编译连接,用debug加载、跟踪,然后回答问题。源代码:assume cs:codesg,ds:datasg,ss:stacksgcodesg segmentstart: mov ax,stacksg mov ss,ax mov sp,16 mov ax,datasg mov ds,ax

2009-08-23 19:27:00 604

原创 第六章实验任务(2)

题目:将下面的程序编译连接,用debug加载、跟踪,然后回答问题。源代码:assume cs:codesg,ds:datasg,ss:stacksgdatasg segment dw 0123h,0456hdatasg endsstacksg segment dw 0,0stacksg endscodesg segment

2009-08-23 13:28:00 712

原创 第六章的实验任务(1)

题目:将下面的程序编译连接,用debug加载、跟踪,然后回答问题。源代码:assume cs:codesg,ss:stacksg,ds:datasgdatasg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdatasg endsstacksg segment dw 0

2009-08-23 11:23:00 943

原创 检测点6.1第二题

题目:用程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传说用栈来进行。栈空间设置在程序内。解答:源代码:assume cs:codesgcodesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h dw 0,0,0,0,0,0,0,0,0,0start: mov

2009-08-23 08:22:00 1057 1

原创 检查题6.1第二题

<br />题目:用程序实现依次用内存0:0~0:15单元的内容改写程序中的数据,数据的传说用栈来进行。栈空间设置在程序内。<br />解答:<br />源代码如下:<br />assume cs:codesgcodesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h dw 0,0,0,0,0,0,0,0,0,0start: mov ax,cs mov ss,ax mov

2009-08-23 01:12:00 404

原创 检测点6.1第一题

题目:实现依次用内存0:00:15单元中的内容改写程序中的数据解答:源代码;assume cs:codesgcodesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hstart: mov ax,0 mov ds,ax mov bx,0 mov

2009-08-23 00:10:00 730

原创 第六章在代码段中使用栈6.2程序

题目:利用栈,将程序中定义的数据逆序存放。代码:assume cs:codesgcodesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;dw定义了16个字型数据,在程序加载后,将取得16个字的内存空间,存放;着这16个

2009-08-22 22:03:00 603

原创 第六章包含多个段的程序6.1

1.程序源码如下,主要是为了得出assume cs:codesgcodesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cabh,0987h mov bx,0 mov ax,0 mov cx,8 s:add ax,cs:[bx] add bx,2 loop s

2009-08-21 23:34:00 648

原创 第五章实验四第三题

题目:下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果代码:assume cs:codesgcodesg segment mov ax,__(1)__ mov ds,ax mov ax,0020h mov es,ax mov bx,0 mov cx,_

2009-08-21 18:25:00 979

原创 第五章实验四的第一题

题目:编程,向内存0:200~0:23f依次传送数据0~63(3fh)。1.分析:首先0:200~0:23f可以看成是段地址0020,偏移地址范围是0~3fh。其次此题应该采用循环来实现。2.源代码编写:assume cs:codesgcodesg segment mov ax,0020h mov ds,ax mov bx,0h mov cx

2009-08-21 16:08:00 781

原创 5.3在Debug中跟踪用loop指令实现的循环程序

 问题:计算ffff:0006单元中的数乘以3,结果存储在dx中。解答:一:分析思路:1.运算后的结果是否会超出dx所能存储的范围? ffff:0006单元中的书是一个字节型的数据,8位的,其范围在0到2的八次方之间,取其最大值是2的8次方,即255。则用它和3相乘后的值是255×3=765=02fdh。而dx所能存储的最大数值是2的16次方,即65535=0ffffh,很明显的是02

2009-08-21 08:50:00 3222

原创 问题5.1、5.2、5.3

5.1题目:一段内存21000h~210007h,21000h处存放BE,210001处存放00,执行以下指令后内存的情况。解答:mov ax,2000h;//把2000h送入ax中mov ds,ax; //把ax的内容即2000h送入段寄存器ds中mov bx,1000h;//把1000h送入bx中mov ax,[bx]; //把内存单元((ds)*16+(bx))的内容

2009-08-20 23:46:00 640

原创 第四章:实验任务

 (1)将t1.asm编译生成可执行文件t1.exe. 解答如下:进入安装有masm.exe和link.exe的文件夹,我的是tools。然后敲入masm ******编译t1.asm生成目标文件t1.obj****** Microsoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Corp 1981-1985, 1

2009-08-20 22:19:00 1262

原创 程序执行过程的跟踪:(用debug来跟踪一个程序的运行过程) 整理总结

1.理由:在DOS中运行一个程序的时候,是由command将程序可执行文件中加载入内存, 并得以执行的。但是我们看不到程序逐步执行的过程,因为command的程序加载和设置cs:IP指向程序的入口的操作是连续完成的,而当cs:ip一指向程序的入口,command就放弃了cpu的控制权,cpu立即开始执行程序,直到程序结束。 2.目的:为了观察程序的执行过程,可以使用Debug。Debug可以把程序

2009-08-20 22:16:00 10739 1

原创 第三章的实验任务

1.使用debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。 ******set ds****** MOV AX,FFFF MOV DS,AX;设置数据段地址为ffff ******set ss and sp****** MOV AX,2200 MOV SS,AX MOV SP,0100;设置栈顶为:2200:0100 ******把FFFF

2009-08-20 22:02:00 1645 1

ResEd 汉化版,很好的资源编辑器

ResEd汉化版 ResEd 汉化版,很好的资源编辑器

2009-10-20

《微积分之屠龙宝刀+微积分之倚天宝part4(4-4)

《微积分之屠龙宝刀+微积分之倚天宝.非常幽默风趣的写书手法,非常的简介明快。什么都不说了,自己下来看看就知道了 part4

2009-10-14

《微积分之屠龙宝刀+微积分之倚天宝part3(4-3)

《微积分之屠龙宝刀+微积分之倚天宝.非常幽默风趣的写书手法,非常的简介明快。什么都不说了,自己下来看看就知道了 part3

2009-10-14

《微积分之屠龙宝刀+微积分之倚天宝 part2(4-2)

《微积分之屠龙宝刀+微积分之倚天宝.非常幽默风趣的写书手法,非常的简介明快。什么都不说了,自己下来看看就知道了 part2

2009-10-14

80x86保护模式系列教程

80x86保护模式系列教程 一.保护方式简介 二.分段管理机制 三.控制寄存器和系统地址寄存器 四.实模式与保护模式切换实例 五.任务状态段和控制门 六.控制转移 七.中断和异常 八.操作系统类指令 九.输入/输出保护 十.分页管理机制 十一.虚拟8086模式

2009-09-28

10年编程无师自通,明白程序员的前进方向,如何前进

10年编程无师自通,明白程序员的前进方向,如何前进

2009-09-28

Virtual Pc

一款很好用的虚拟机,用来安装虚拟纯dos。还有,安装好dos后,再安装附件中的dos附件模块,就可以设置文件夹共享了

2009-09-28

王爽汇编语言第二版的课件

王爽汇编语言的课件,适用于教学模式,也就是ppt了

2009-08-20

王爽汇编语言的答案answer.chm

王爽的汇编语言答案,chm版本的,相当的好用

2009-08-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除