翻转汇编第6周总结

简介:   每周上完课,布置一个作业——总结。这将作为一个要坚持的事情。这个想法来自去年暑假学到的“行动学习”中的“复盘”技术,逐渐坚定在近日学习的教学设计。将总结作为一个轻量级的复盘用吧,乘着刚刚学过,将脑中尚留的东东,包括情感,给个表达的机会,由此而形成固化。  只是苦了我的学生们。他们周一满课,不少同学只能是晚上再写。其实,这个时候,脑子里留存的东西可能已经不算太多了,乘此再追一下,也有好处。

  每周上完课,布置一个作业——总结。这将作为一个要坚持的事情。这个想法来自去年暑假学到的“行动学习”中的“复盘”技术,逐渐坚定在近日学习的教学设计。将总结作为一个轻量级的复盘用吧,乘着刚刚学过,将脑中尚留的东东,包括情感,给个表达的机会,由此而形成固化。

  只是苦了我的学生们。他们周一满课,不少同学只能是晚上再写。其实,这个时候,脑子里留存的东西可能已经不算太多了,乘此再追一下,也有好处。其实,我理想的安排是,课堂留5分钟总结时间,无奈网速不给力啊!(下周尝试让同学先在记事本写,方便时再发布)。

  第5周的总结尝试用“作业”模块,由同学互评,结果由我导出的大家的成果分散在多个文件中,交流效果有限。初想是自己偷懒,让学生之间解惑,但想想这也是一个很好的学习方式。现决定每周还是用“头脑风暴”完成,点评的任务只能交给我了。不过,每周花点时间,给这种很新鲜的学习成果加点注解,也是一件很有意义的事。这事就由我做了。

学生

总结内容

回复

1147

关键词:寻址方式,寄存器,双重循环
收获:寻址方式的应用,栈的使用
疑惑:双重循环中cx的使用

实验课做一做该就清楚了。

1101

关键词:bi  di  sx  idata
收获:辨别寻址方式;引用寻址方式来解答题目;
疑惑:不能很快的根据题目知道要用哪种寻址方式

知了,待行。在行中知用。

1102

在今天的课上,再次接触到使用loop循环指令访问连续的内存单元,对内存单元内的数据进行读写操作,并且通过自己动手编写程序实现这一过程。在编写程序和程序运行过程中,出现的问题有直接对内存单元内容进行操作,并没有借助于寄存器,导致程序错误,无法运行,最后请教老师后得到解决;此外还有查看内存单元中存储的数据,在小组中对于这一点都不是太清楚,最后也是求助于老师得到解决。数据段和代码段在内存中的存储位置;当然,老师也初步讲解了在汇编语言中使用双葱循环的方法,如何能很好的实现这一方法。此外课上还通过形象的例子,讲解和学习了各种寻址方式的区别和联系。寻址方式不同,但都是对于存储单元内容的读写,不同的寻址方式能够提供不同情形下对内存的使用。

 

1103

哈哈,我又是最后一个吗?
11点11,很吉利,到现在了,脑海中还有啥?几种寻址方式,寄存器直接(间接)寻址,基址变址寻址。。。。。。di,si,如何利用几种寻址方式来实现自己想要进行的操作。如何使用双重循环等等。
今天,一个课堂题中,忽略了,内存不能直接与内存进行操作,必须通过一个寄存器来实现(之前还自以为代码写的很简洁,哈哈)。通过老师的讲解,也明白了如何去看数据段中的内容。
PS:这好像不是三个关键字,两个收获了,哈哈,没事,就这样写吧,嗯呢,放下手机,睡觉??。

 

1104

动手,思考,疑惑,
双重循环,使用栈

 

1105

以字符形式给出数据,用d命令查看data段,Debug以十六进制数码和ASCII码字符的形式显示出其中的内容,可以看出data段中的每个数据所对应的ASCII字符。mov ax,[bx+idata]将一个内存单元的内容送入ax,这个内容单元长度为2个字节,存放一个字,偏移地址为bx中的数值加上idata,段地址在ds中。在一段程序中,在code中填写代码,将data中定义的第一个字符串转化为大写,第二个字符串转化为小写。今天学会用[bx+idata]的方式进行数组的处理,双重循环的运用,字符串在内存中的起始地址是不一样的,它们中的每一个字符,从起始地址开始的相对地址的变化是相同的。对于[bx+si]和[bx+di]的含义,如何理解,它们之间的区别是怎样的。

[bx+si]和[bx+di]的含义,从语法角度,没有异同,从用法角度,把握s-源,d-目标,si用于源地址,di用于目标地址即可。这样的程序可读性也好。

1108

三个关键词:寻址方式,两重循环,字符串处理
两个收获:学会了多种不同的寻址方式,学会了使用两重循环。
一个疑惑:如果要用汇编语言编写排序程序,比较如何实现?

会玩排序的,当我们学全转移指令时。

1109

关键词:讨论,学习,协作
收获:能区别这种寻址,用双重循环写程序
疑惑:是不是地址运算就等于地址里面的数据运算

要分清内存的地址和内存中的数据。

放到C中,有int a=5;变量a的地址为&a,值为5,可否能有所联系?

1110

三个关键字:思考、实践、团队
两个收获:学会了画图,使得解题思路更明确;学科之间是有联系的,结合已学知识可以更深入的理解汇编语言
一个疑惑:不明白的时候如果又难以表述自己的疑惑怎么办?

这个问题真太难了,做标准化试题出来的孩纸的通病。练吧,有不明白的就提出来,讲给别人听,这个能力可以有,必须有。

1111

我学到了,双重循环的利用,以及建立栈段并存储数据。
我学会了申请空间,并通过循环计算并存入所申请的空间。
我的疑惑是在调用di,cx等多个存储器之后对他们的地址有点分不清,
我的收获,我懂得了小组做题时协作虽然不如自己学的扎实但是能够快速的补填自己的学习漏洞

再做些实践就能分清了。

1112

关键词:寻址方式,双重循环,分段存储
收获:掌握了多种寻址方式。掌握了双重循环的实现方式。
疑惑:不知道汇编里怎么实现比较操作。

答案逐渐揭晓。可以自己先翻翻书,这个问题肯定得解决。

1113

活跃,可持续,团队
一:团队的重要性
二:学习需要自主性
总结真的这么重要吗?不总结不也过了这么多年了嘛。

我是白活了40多年以后才知道总结重要的。我希望20的你能及早知道。

我们70后有过十几年饿肚子的时光,也就那样过来了。现在看,还是不饿肚子的日子好。

听老人言,没错。

1119

3个关键词:字符 寻址方式 循环
2个收获:①计算要操作数据所在内存单元的物理地址
         ②双重循环中为防止出现问题可将外循环的cx值存入bx/内存单元/栈中
1个疑惑:其实没啥太疑惑的,就是对知识点不太熟,解答问题时得慢慢想才行

没疑惑挺好。其实,有点疑惑可能更好。

1121

3个关键词:si di 循环和双重循环
2个收获:把一段内存里的数据复制到另一段内存李,把两段内存里的数据相加并保存
1个疑惑:写双重循环程序时,怎么把两个循环结合

这个疑惑交给实践环节品味吧。

1122

keys:寻址 基址 间址
收获:1.mov指令不能同时操控两个内存
      2.寻址方式的区分
疑惑:还没怎么有

参照1119

1124

3个关键词:偏移地址从0开始,一个字为2字节,寻址方式
2个收获:1.可以用寻址方式和loop循环将某一内存内容复制到另一内存单元中。
2.双重循环中,第一重循环循环次数cx内容可以先放到栈中。
1个疑惑:各类寻址方式怎样具体应用

实践中解决

1125

关键词:寻址方式  双重循环  画图
两个收获:(1)即便复杂的问题通过简单的图形描述也会变得更加生动容易理解
(2)利用汇编语言中循环的嵌套也能够完成排序工作

 

1126

3个关键词:寻址方式   内存图  双重循环
两个收获:分析程序功能时画出内存图,学会了用双重循环解决问题
一个疑惑:用寄存器相对寻址的方式处理数组

实践中解决

1127

3个关键词:寻址方式  二重循环  内存单元的数据复制到另一个内存单元中
2个收获:区分各种寻址方式,编程二重循环
1个疑惑:计算总工资那个题,最后运行的时候,不知道源代码所在的内存单元。

进debug后,由CS和IP可以看出代码段的地址。数据在DS:0基础上加100H(DS是程序占用内存的起始地址,数据需要隔过留出的100H程序段前缀PSP)

1128

关键词:计算,编码,画图
收获:1.抽象的知识如果能画出具体的图像,就会了一半。2.知道了双重循环的基本要求和内存之间的数据传递需要寄存器当过渡
疑惑:双重循环可以用于解决那种类型的问题

遇到问题看你如何建模了。多见识点问题就好了。

1129

由于家里有事不得不回家导致今天贺老师的汇编语言课没办法去听讲。但是咨询了同学,同学说这节课讲了不同的寻址方式的区别和二重循环的使用。所有的知识都必须要实践然后在脑子里有了自己的理解 形成自己的东西才会对自己有用,而并非老师教给我了我当时懂了明白了过后就忘。所以每次都告诉自己一定要勤实践。

老贺不点名,学生主动招供没上课。这一对奇葩师生!

1130

3个关键词:寻址 ,两重循环,大小写转换
2个收获:了解了不同寻址方式的运用;懂得了如何使用汇编语言实现大小写转换
1个疑惑:对于如何将题目要求转换为程序还有点困难,不能快速的写出来

对你而言,加强一下实践吧。

1132

1,内存寻址方式,双重循环,段前缀
2,知道了双重循环跟c语言不太一样,汇编语言的循环系统会进行随机循环,而不像c一样直接先内而外的循环。
 3,还是会出现out of memory这种情况,变换输入法还是不行。

从循环流程上,二者是一样的,仅表达方式有差异而已。上机课时单独交流一下,你找我。

1133

字符串处理 寻址方式 观察
大小写转换问题  si和di的使用
寻址方式怎样更加灵活的运用

 

1137

3个关键词:寻址方式,大小写转换,si和di寄存器,两重循环问题
2个收获:我懂得了各种寻址方式和si和di寄存器,学会了二重循环
1个疑惑:并不是很清楚各种寻址方式的区别

把学过的程序自己走一遍,亲手算一算,自然水落石出。

1141

3个关键字:寻址方式、SI和DI寄存器、二重循环问题
2个收获:不同寻址方式的使用,把一段数据复制到另一段内存中
1个疑惑:mov al,ds:[0]
        mov ah,0

       ;(ax)=((ds)*16+0)=(ffff0h)
       第二条语句是干什么的?我觉得第一条语句就可以完成这个功能了啊。

你的疑惑中,缺少点铺垫,有点断章取义的感觉,使得仅凭这两句无法说清这样做的理由。当要从内存中取一个字节的数据,而随后的运算中,却要将其当作一个字看待(这时要确保高8位为0)时,这是一个很模式化的写法。

1142

3个关键词:寻址 二重循环 si、di寄存器
2个收获:不同的寻址方式的区别以及二重循环的应用
1个疑惑: 程序还不太会写

那就在写程序中学会写了。不太会写,这是你写程序的理由。

1143

今天课堂上着重强调了“寻址”这个知识点,从花费的时间来看,这是一个相当重要的知识点,通过bx寄存器,si,di,idata等,花式寻址,各有意义。同是也有讲到一个超级6的双重循环,我们学过高级语言,对于双重循环,已经掌握得很熟练了,在汇编中实现,觉得很爽,包括一些循环变量的控制的细节,也很有意义。课堂上和小伙伴一起做了两个代码实验,都ok,感觉学到了很多,不过还在于课后看书吧,不然要忘了

 

1144

3个关键词:寻址方式   字符处理   地址
2个收获:更清晰的能分辨了这几种内存寻址方式
              计算物理地址。
1个疑惑:还是不知道这几种寻址方式最根本区别。

实践一些后体会吧。

1146

三个关键词:字符、寻址、嵌套循环
两个收获:第一,我学会了在汇编中使用字符;第二,我学会了使用嵌套循环
一个疑惑:课上老师举得那个例子(给20分钟,让小组合作的那个题:将前两行的数加起来的结果存到第三行),我编译的时候有错误,如图所示。

看不到图。再试一试,不行上机课时解决吧。

1201

3   关键字:字符串处理,Si Di寄存器,不同方式的寻址
2   收获:知道了在汇编语言中怎么用字符,怎么写双重循环和各种方式的寻址。

做些实践,在实践中明白吧。

1202

汇编语言代码也可以和C语言一样不断进行优化,在双重循环里可以提现这一点。电脑硬件资源有限,所以需要程序员代码来实现复杂的任务。栈的用途其实很多,不管是数据临时存储还是变量存储都是不错的选择。没有啥子疑惑

 

1203

相对寻址,[bx+idata],双重循环
知道add和or指令的用法了,能看懂它们的用法;
在进行大小写字符转换时,学会用双重循环了。
疑惑是:用那几种寻址方式时,寻址的过程我还是会不太分的清楚

觉得你是只看了视频,读教材少了。阅读一些程序,自己独立走一走程序就好了。书上给的例子就很好。

1204

雙重循環 尋址方式 連續地址數值操作
雙重循環用堆棧暫代CX,從而節約寄存器或避免數據雜亂
不同的尋址方式有不同的應用
感覺越學越亂,學得知識列的清清楚楚,但解決問題千穿百孔

就在解决问题的进步吧。

1206

寻址方式  双重循环  and、or指令
学会了不同的寻址方式和双重循环的使用
在课堂中最后的例题写代码的思路有,但是具体写不怎么会,还需要和同学多讨论

加强实践,你会获得更大进步。

1207

关键词:寻址方式  二重循环   字符处理
收获:发现汇编语言的寻址方式和计算机组成原理课上讲的是一样的,只是又有了更深层次的理解
终于解决了我一直疑惑的一个问题,二重循环只有一个cx怎么实现,以及字符的大小写转化的问题
疑惑:暂无

 

1208

三个关键词:字符处理,寻址方式,双重循环
两个收获:学到了和C语言中的数组很像的思想;不同寻址方式的应用
一个疑惑:在数据段中定义的各个数据,一定是按定义的顺序存的吗?

是按定义的顺序存储的。

1209

双重循环,cx,寻址
学到了解决双重循环cx数值的三个方法,更深刻理解了各种寻址方式
si和di 是什么作用的寄存器?有什么区别?

参见1105。把教材的相关内容读一读,这个问题可以自己解决。

1210

3个关键词:di,si变址寄存器,寻址方式,二重循环问题。
2个收获:学会了不同的寻址方式的应用。二重循环cx多次使用的问题,最有效的方法是把cx的值保存在一个地址单元内。
1个疑惑:用db和dw定义相同个数的数据时,所占的字节单位是否一样?

用db和dw定义的数据分别占1字节和2字节。

1211

双重循环,寻址方式,寄存器和内存单元变化过程
双重循环的使用,想试着写写排序
最后的程序还没写完

 

1213

这节课的知识易学、易懂、用起来也不是很复杂
学习到了双重循环、多种寻址方式
疑惑目前还没有

 

1215

寻址方式,双重循环,bx+si
我之前对寻址方式很糊涂,通过课上练习明白了。
巩固了双重循环。

 

1216

3个关键词:寻址、字符处理、双重循环
2个收获:小写转大写and 11011111b 大写转小写 or 00100000b 双重循环用栈暂存CX
1个疑惑:debug时出现extended error是什么错误?

上机时给我展示一下好吗?我们结合情境探讨。

1217

双重循环,寻址方式,访问
学到了怎样连续的访问内存并进行数据的操作以及双重循环的使用特别是压栈的作用

 

1218

3个关键词:寻址方式、寄存器、处理字符
2个收获:学会了双重循环和寻址,还有小组讨论后一起得出的结果是非常开心的一件事情!

 

1219

寻址。循环。写代码
不能直接在两个地址空间之间进行操作
写双重循环的程序

 

1220

三个关键词:表达能力,寻址方式,双重循环
两个收获:第一,通过实际运用学会区分了各种寻址方式
          第二,画内存图是很直观的做题方式不能为了省事而不画
一个疑惑:不同的寻址方式分别适用于哪种具体的状况?

实践中解决几个问题就清楚了。

1221

3个关键词:字符转换、寻址方式、双重循环、
2个收获:在老师有趣的复习方式下,更加了解了不同寻址方式的区别和作用;
以前学习过C语言,所以双重循环已经很熟悉,但是今天在汇编课上在编辑源程序的时候也学会了如何加入双重循环。
1个疑惑:课上贺老师向我们展示了不同于以往结构的双重循环,大循环的结尾语句在小循环里面。我存有疑惑的是这种结构有什么区别吗?又或者说它在执行过程中会有什么改变呢?

当前高级语言的结构已经可以避免这种类型的循环发生了。在汇编中,语法上可以这么写,但如果写出这样的程序,几乎就是错误的,至少这样的程序是难于读懂的,要刻意避免。你可以自己玩着写一个这样的程序,单步跟踪一下,你会知道这种瞎搅乎程序的可恶。

1222

三个关键词:寻址方式、双重循环、写程序
两个收获:学会了好几种寻址方式,还有双重循环

 

1223

3个关键字:寻址方式,数组,二重循环

2个收获:利用寄存器相对寻址构造数组;
         借助SI,DI,利用不同寻址方式实现二重循环,以及对内外CX的使用。
1个疑惑:通过不加空格和加空格的方式可以把字符串的存储当作一维数组和二维数组,那对数字的存储怎么做到二维存储呢?

在C语言中,我们知道二维数组从存储上都可以看作一维数组,对数字,对字符,都是这样,所以,他们本质上都是一样的。

顺序存储的数据看作二维数组?这就由人定了,例如20个数据,你可以看成2行10列的、3行7列的、4行5列的……这个特征,用汇编更是明显

1224

变址寄存器,寻址方式,与或运算。
认识了多种寻址方式的特点。对于SI和DI俩变址寄存器的初步应用,灵活多变地作用于程序编写。
疑惑是对于堆栈实现二重循环不太熟悉步骤。

首先明确那样做要解决的问题。接着,将程序人工走一走就清楚了。

1225

3个关键词:寻址方式,变址寄存器,双重循环问题
2个收获:构造双重循环的算法,变址寄存器的用法
1个疑惑:内存的寻址方式不太会。

这周玩的就是内存寻址。是否你视频学习的深度不够,或者,对你而言,把教材再好好看看。

1226

关键词:寻址方式,双重循环,新指令
收获:知道如何转换大小写,了解了基本的寻址方式
疑惑:目前没疑惑

 

1227

3个关键词:双重循环,寻址方式,寄存器
2个收获:学会了简单的双重循环和直接寻址等寻址方式
1个疑惑:双重循环的循环变量如何使用

目前我们用的loop,只能靠cx。由此双重循环需要解决这个问题。

1228

关键词:
寻址方式
双重循环
寄存器
收获:
大小写的转换
寻址的方式
疑惑:无

 

1229

寻址方式,双重循环
知道了寻址方式的不同,是因为需求不同,知道了可以在内存中设置双重循环的变量。
在机器语言中的比较可不可以用按位比较数的大小,把其二进制的数每一位比较大小,按一个字节判断大小。这样可以吗?

这样的独立思考很好。具备实施的方案中,考虑的因素比这多。参考教材后面的部分。

1231

3个关键词:寻址,循环,字符
2个收获:循环与循环的嵌套,寻址的多种方式
1个疑惑:该怎么使用双重循环进行排序或者说该怎么比较数的大小?

以后解决的问题。让悬念保持,或自行学习后面的内容。

1232

关键词:寻址方式,双重循环,相对基址变址
收获:寻址方式,双重循环应用
疑惑:在编写双重循环的代码时有些困难

加紧实践。

1233

关键词:寻址     双重循环     资源利用
收获:1.学习了直接寻址,间接寻址,相对寻址,相对基址变址寻址,基址变址寻址的概念和用法
2.双重循环中第二个循环中cx可以用其他寄存器转换
也可用栈进行暂时存储,栈的方式更科学
疑惑:如何修改电脑的内部代码,修改后怎么复原

直接修改代码段的机器码可以。可以编程实现,可以用debug。

1234

三个关键词 ASCII码  地址 寻址方式         两个收获 明白了如何使用不同的寻址方式 能够通过看代码写出结果 一个疑惑 有没有更深层次的寻址方式

8086里只提供了这些寻址。

1235

三个关键词:字符串处理,寻址方式,双重循环
两个收获:多种寻址方式的运用,双重循环的堆栈实现方式
一个疑惑:暂无疑惑

 

1236

关键词: 寻址方式 二重循环 数组
收获:全面了解了几种常用寻址方式的特点与寻址过程,又通过例题理解了不同寻址方式可以根据需求更灵活的访问内存空间。学会了使用二重循环,发现了几种寻址方式与数组相似的使用。
疑惑:如果是对几行不等长字符串进行大小写转换处理,可以对 比较短的字符串后面的空单元进行逻辑运算处理吗,空单元默认存的是零吗

可以为字符串规定一个结束符,像C语言里用\0一样。现在只简单处理等长字符串。

1237

三个关键词:地址 寄存器 寻址方式
两个收获:能用很浅显的语言说明寻址方式
使用二重循环
一个疑惑:有没有更高级的寻址方式

参见1234

1238

关键词:寻址方式  双重循环   and、or指令
收获:学会了不同的寻址方式和双重循环的使用

 

1239

3个关键词:双重循环 合作 实践
2个收获:加深了几种寻址方式的记忆 双重循环的具体程序
1个疑惑: 目前没有疑惑,我碰到的疑惑都解决了。

再有新疑惑,代表着更上一层楼。

1240

3个关键词:双重循环,寻址,dup
2个收获:大致知道了dup的功能,对各种寻址方式有了解。

 

1241

3个关键词:寻址,寻址,寻址
2个收获:各种寻址方式的运用;循环和双重循环的应用
1个疑惑:怎样灵活运用各种寻址方式

用实践解决

1242

双重循环,寻址方式,and
双重循环基本概念了解,较熟悉的掌握直接寻址
双重循环不能灵活运用

 

1243

关键字:寻址,双重循环,字符处理
收获:①多种寻址方式的灵活运用,②双重循环的正确写法
疑惑:像ds、cs这些段寄存器是16位寄存器,ax、bx这些16位寄存器为什么不能当段寄存器

厨房里,锅和碗都可以当容器,个别碗也不见得比个别锅小,但锅是锅,碗是碗,各有用途。这些寄存器在CPU设计时就已经规定好了,就这样吧。

1244

关键词:寻址 双重循环 数据调用
收获:学会了如何用多个循环编写程序;明白了如何调用内存数据。
疑惑:如何用【bx+idata】的方式实现数组的处理

本周解决的问题实质上都是处理数组。再阅读程序加深下理解吧。

1245

三个关键词:循环 寄存器 寻址方法
两个收获:掌握了双重循环如何对cx进行设置以及各种寻址方法之间的差别
一个疑惑:老师说不能进行内存和内存之间的指令操作,那么mov [si+16]  [si]这条指令对吗?

这是内存与内存之间的传送,是不允许的。中间用一个寄存器“倒腾”一下就好了。

1246

循环,寄存器,寻址方法。  
学会了用各种方法寻址。
学会了如何使用数据段。


目录
相关文章
|
2月前
|
编译器
11.14作业(打印图案,乘法表右对齐,圆周率,哥德巴赫猜想)
11.14作业(打印图案,乘法表右对齐,圆周率,哥德巴赫猜想)
|
4月前
|
C语言
c语言编程练习题:7-51 求奇数分之一序列前N项和
c语言编程练习题:7-51 求奇数分之一序列前N项和
30 0
|
9月前
学C的第十三天【应用多文件的形式实现 三子棋 程序(重点);练习:1. 打印9*9乘法口诀表、2. 求10个整数中的最大值、3. 分数加减交叉计算、4. 数一下 1到 100 的整数中出现了多少个9】
9.数组的应用实例1:三子棋(综合以前学习的知识) 三子棋的实现:(重点都在注释中) 1. 游戏不退出,继续玩下一把(循环) 2. 应用多文件的形式写代码
|
9月前
|
机器学习/深度学习 C语言
【C语言】扫雷(递归+标志+游戏用时时间)详解
【C语言】扫雷(递归+标志+游戏用时时间)详解
67 0
【C语言】扫雷(递归+标志+游戏用时时间)详解
|
算法
算法练习题(六)——Z字型打印矩阵
算法练习题(六)——Z字型打印矩阵
82 0
7-13 简单计算器 (25 分)
7-13 简单计算器 (25 分)
178 0
7-13 简单计算器 (25 分)