汇编翻转总结及答复(第7周)

  1. 云栖社区>
  2. 博客>
  3. 正文

汇编翻转总结及答复(第7周)

贺利坚 2017-04-18 10:19:00 浏览1232
展开阅读全文


学生

总结内容

回复

1147

div指令,内存寻址,数组
用dup设置内存空间重复的值,
根据指令,分析操作数的类型和地址

 

1104

3个关键词:除法,dup操作符,汇编结构体
2个收获:1.使用div指令进行除法运算,也分为除数的位数,有一点疑问就是如果我的除数是0,那运行会不会是像C语言那样报错呢,那如果报错,怎样能避免或者检测这个除数的值呢?
2.dup可以进行数据的重复,类似于数组的赋值,可以非常简单直白的把值给定,还不需要花费很大空间去声明,那这个dup指令我如果定义50个字节栈段都为0,能不能处理结果之后把结果再放到dup中,以备下一步操作使用?

除数为0会引发运行错误;

用dup定义的是内存单元。既是内存单元,可读可写。

1108

3个关键词:寻址方式,除法,内存空间
2个收获:用div实现除法,用dup设置重复的内存空间
1个疑惑:div实现的除法限制的非常多,在c语言中只要用一个简单的/符号,编译器是如何转换的,是我们学的太浅吗

汇编语言还有其他途径实现除法。作为32学时的课程,我们的学习内容有限,可以在课程基础上自行拓展。

1110

三个关键词:数据,内存,排序
两个收获:多角度看数据,虽然是不同学科,但是有些知识却是相通的;基址寄存器和基址寄存器、变址寄存器和变址寄存器不能一起作为内存地址使用
一个疑惑:如果nop是不做任何操作,那执行完这条语句是退出整个程序吗?

要是退出程序,不就意味着做了操作了吗?nop就是什么都不做,直接继续执行下一条的指令。

1111

在这一节课,我学到了用汇编语言来使用数组,数组只是一个形式,他不会改变数据的存储方式和地址,
我还学到了汇编语言的判断语句的用法,实现了进城的双分支,
我的疑惑是在使用双重循环时格式有点不太看懂,还有判断语句的用法不太理解

你的问题,靠继续学下去解决。可以自行加些实践去体验。

1112

关键词:综合运用,多种寻址,除法计算
收获:综合运用多种寻址方式解决问题;掌握了汇编除法的使用方式。
疑问:

 

1113

data,基础,团队
黄金静默,数据在内存里的存储方式——线性。
所有的c语言算法都能表示成汇编吗? →_→

算法与语言无关。理论上,所有算法,可以用任何语言描述。工程中,选择合适的语言做合适的事。

1119

3个关键词:数组、汇编与C语言、排序
2个收获:①数组在物理储存上均可以看作一维数组,几行几列只是顺应需要而已,本质不变;
②初步了解了比较程序的内容—J-jump,E-equal,B-below
A-above,N-not
1个疑惑:这节课的内容好像和上周布置的视频没啥关系?数组那听懂了,后来补充的知识还差点

翻转后的课堂,适时为大家拓展些教材外的内容,这个需要适应。

1121

三个关键词:多角度看数据,汇编中如何比较,排序
两个收获:内存开辟空间都是16的倍数,更熟练的用双重循环
一个疑惑:根据c语言的排序写汇编语言

给自己点时间,写出来就好了。

1122

这节课学习了除法和if条件判断以及基址与变址的判断
掌握了底层编程的思想与技能
对div操作还不是很透彻

 

1124

3个关键词:div指令,交换指令xchg,操作符dup
2个收获:段的大小为16的倍数,指令中要标明内存单元中是字还是字节
1个疑惑:数据段偏移地址[bx]从0开始,但
dw 1,2,3,4,5,6,7,8
dw 9,10,11,12,13,14,15,16
为什么取第二行的第一个数时为[bx+16],小数点不放入内存吗?

数据单位是“字”,8个数据,16个字节。何来“小数点”?

1126

三个关键词:数组  jmp指令 排序
两个收获:所有的数组存储时都是一维数组,但也可看成二维三维数组,以任意行任意列形式
指令如何跳转,以及根据程序画出相应的流程图,便于理解
一个疑惑:转移指令还不是太清晰,还只是能根据理解画出流程图

你正在搞懂的路上……

1127

3个关键词:数组  排序  dup
2个收获:j,e,b,a,n     div指令
1个疑惑:排序

做出来就好了。

1128

关键词:实践,巩固,信心
收获:1.每次学习之后,留段时间用于回顾巩固,事半功倍2.学习要有自信,要敢于实践
疑惑:如果实践失败了还有没有挽救的地步??

学习中,失败的实践,甚至可以是你最大的收获。积累了学习中的无数失败,才不会在事业中,酿成不可挽回的损失。

1129

数组 比较大小  排序
一维数组和二维数组只是对于自己和用户便于理解而区分
较好的掌握了比较大小的语句

用汇编语言写的排序也会有冒泡,快排,基数排序等多种类区别吗

算法就在那里,用任何语言都可以去实现,当然,包括汇编。

1130

3个关键词:寻址方式,排序,jump
2个收获:一维数组,二维数组以及多维数组的灵活应用;用jmp语句进行循环
1个疑惑:如何将一段数据复制到内存的另外一个地方

这是我们实践的内容。可以将视频、课堂中的例子再读一读,将实践再做一做。

1131

比较,除法,寻址
学习了汇编的排序,学习了一些汇编上的禁忌
为什么内存不能直接访问内存

简单讲,指令系统就是这么设计的。更深入地,请参考有关计算机设计的内容。

1137

3个关键词:寻址方式,div,jump
2个收获:如何用汇编来排序;一维数组和二维数组很灵活
1个疑惑:用汇编写排序还不是很懂

用合适的参考,写出来就好了

1141

3个关键字:div,jump,寻址方式
2个收获:
xchg 寄存器,内存单元 ;寄存器内容与内存内容相交换。
数据在内存中按一维数组,二维数组还是三维数组排列,取决于主观。
1个疑惑:不懂各个寄存器的使用。

这个问题大了,从第2周的内容起,复习一下解决。

1142

3个关键词:数组  比较大小 排序
2个收获:比较大小的语句理解和编写,对于一维数组和二维数组的转换的理解
1个疑惑:不是很懂排序

用合适的参考,写出来就好了

1144

3个关键词:寻址  数据  结构体
2个收获:知道如何去求平均并存到内存地址里;汇编语言中如何定义结构体
1个疑惑:排序还是没怎么看懂。

继续看。

1146

三个关键词:寻址、除法、比较
两个收获:我学会了div语句的使用;认识了cmp语句及ja、jna、je等语句
一个疑惑:课上老师所讲的结构体那个题,数据段是76个字节的数据,数据段要是16的倍数,那是不是应该设成80个字节大小的数据段?

指定76字节数,编译器会要求分配80个字节。

1203

比较  数据  练习
知道了汇编语言也能排序比较,而且我知道了新的就业方向,学好计算机还能向老李学习呢!
我觉得我还缺乏练习,要不然遇到很多新题的时候,我都会蒙圈,安排内存寻址的时候还会有很多问题

加强实践

1204

双分支路 除法 数组维度。
归纳了部分汇编错误指令,
熟悉了除法应用和数据的数组存储。
我很难产生疑惑,因为我坚定的相信继续学下去所有的问题都会有解释。

学着提出疑问。没有疑问,很难做到主动学习。

1206

处理数据的位置、处理数据的长度、排序比较;学会了用多种方式给定内存单元的偏移地址、学会了div除法指令和dup操作符的使用;除了通过双重循环的方法把一串字符比较大小还有其他方法吗?

当然有。解决一个问题,总是有很多方案。

1207

关键字:排序,除操作,分支判断结构
收获:学习到了div除操作的用法,处理不同长度数据的时候各种数据存储的位置也不同。
也学到了用分支判断结构去实现冒泡排序算法,虽然还没有把代码写完。
疑惑:cmp比较函数的两个操作对象好像是不能同时是内存单元吧

不能同时是内存单元。这个规定,和其他指令是一样的。

1208

三个关键词:数据恢复,div,dup
两个收获:1.学习是动态的,就像小树,边生长,边扎根;2.学会了div除操作
一个疑问:cmp 比较大小后的 ja,jna之类的要怎么确定它结束的地方呢?比如
s: cmp ax,10h
    ja max
    add ax,01h
    max: mov dx,ax
              mov ax,bx
              mov bx,dx
              add ax 20h
    loop s
电脑怎么知道max到底在哪里结束呢?

这不是要ja,jna确定的。你大概受C语言的一对花括号影响了。ja,jna只管要不要转移,余下的,该执行哪条指令,按指令的执行机制走就行,以此形成各种流程转移。

你的max,只是当前指令位置的标识,再无别的含义,没有所谓结束的概念。

1209

三个关键字: 数据恢复,div,排序
两个收获:loop 用的越来越熟练,用汇编语言排序也有了新的思路
一个疑惑:汇编已经可以排序,交换了,那么会有指针吗,还是说指针的功能已经用别的方式实现了?

我们不是一直在“寻址”吗?不是汇编没指针,而是我们一直用的就是指针。

1210

3个关键词:几面几行几列,bp,div指令
2个收获:段空间都是16的倍数。两个内存空间不能想加。
1个疑惑:字节和字定义还是不是很清楚,是不是100h以上的数字不能用字节定义了?

字节有8位,字是16位。100h靠8位已经存放不下,只能用字了。

1211

排序方法,除法运算,dup指令
冒泡排序,比较算法
排序方法的应用

 

1212

数组 错误的指令  比较与排序
数组的表示很灵活,一维,二维,三维~随心转换。

 

1213

三个关键词:div,dup,[...]
两个收获:第一,更加熟悉认知了内存单元的寻址方式
 第二,懂得了div和dup的用法
一个疑惑:在做第一个实验的时候,为什么输入的90是数字,查看内容是大写字母Z呢

大写Z的ASCII值为十进制90

1215

合法语句,比较指令,除法
感觉用c能写出来冒泡排序,用汇编就很难。。因为要考虑内存什么的。
学会了比较大小语句

会者不难。学会它!

1216

3个关键词:div指令,bp寄存器,word ptr和byte ptr
2个收获:用dup定义重复的内存空间,汇编语言也可以用结构化数据进行存储。
1个疑惑:8位或16位除法是指什么是8位或16位的?8或16位除法是根据被除数确定的吗?

“8位或16位除法”是根据除数定的。

1217

寻址方式,div,dup
数组的存放和寻址方式的细节

 

1219

数据恢复。除法操作。数组
基础分两种,一种静态一种动态
只要朝着一个方向不懈努力,不断钻研,就会有所收获

 

1220

三个关键词: 结构体,数组,排序
两个收获: 明白了汇编语言也可以像c之类的有数据结构之类的写法,同样的简单;此外还有区分了各种汇编语言写程序过程中易混易错的句子,理解了跳转语句的简单用法。
一个疑惑: 虽然一串数据可以分为多维数组,但实际结构存储都是一样的。那又分成多维数组理解方式有个好处?

“分成多维数组理解”不是要什么好处,而是在解决实际问题时,需要用多维数组建模,进而用语言实现这种模型。

1221

3个关键词:内存单元的寻址、访问内存单元、div
2个收获:在贺老师的小游戏中我对内存单元的寻址有了更深一步的理解,也对课下的视频学习进一步巩固了;在课下没有对div的使用进行实际的操作练习,课上的时间在小组的共同协作下我进行了实际的操作,学会了运用于实际编程
1个疑问:在这节课的学习之后,我是不是可以理解所有的二维数组都可以把它们当作一维数组来处理?这和把它当作一维数组来比,在执行上有什么区别吗?
一直以来我有一个疑问,对于同一个题运用不同的方法,在汇编语言上也会有效率之分吗?还是只有恰不恰当之分呢?

多维数组,我们强调的是逻辑结构,是面向人为问题建模而言的。如果从存储的角度,都是线性存储的。一题多解,效率有别,这个根源,用算法复杂度解释,与语言无关。到底选用哪种算法,综合多种因素做决定。

1222

三个关键词:数据恢复、除法、排序
两个收获:有了汇编冒泡排序的思路,应该也能做出来;还有数组在汇编的概念

 

1223

3个关键字:div指令,dup,内存存储
2个收获:内存中数据的存储都是一样的,想看成什么样的存储结构自己就合适方便而定。写指令时,要时刻想着操作数范围,用 byte,word  ptr 保证对应。
1个疑惑:xchg ax, ds:[10],是可以实现直接交换两个地方的数据吗?

xchg ax, ds:[10],寄存器ax的内容,与内存单ds:[10]中的内容交换。

1225

3个关键词:数据恢复,数组,div算法
2个收获:判断指令的对错,求成绩的平均分
1个疑惑:div的算法尚存疑惑,不太熟练

运行一下视频中提供的程序就会突破这个疑惑。

1226

3个关键词:div指令,dd指令,dup
2个收获:汇编语言也可以像c语言一样用来排序,对于一组数据看成任意行任意列的数组。
1个疑惑:push cx指令需要写栈段吗?

有push,就是在操作段,那定义栈段就必须的了。

1227

3个关键词:数据恢复,排序,数组
2个收获:二维数组和一维数组的关系区别联系以及一些常见的错误指令

 

1228

3个关键词: 除法,数据恢复,数组
2个收获 :学会除法的使用,了解了数据恢复
1个疑惑:关于排序,怎么用汇编语言来存储已排好的数

一般排序算法,都是直接在改变原数组上改变。这个根据问题的要求去决定。

1230

3个关键词:基础论,数据恢复,数组
2个收获:最初使的基础并不能决定最终的成就,一列数可以用一维数组,二维数组,三维数组多种形式表示
1个疑惑:具体怎么用汇编语言表示结构体

见课堂中示例。

1231

3个关键词:内存操作数长度,寻址的注意事项,结构体
2个收获:能够用结构体存储数据,能够排序
1个疑惑:除了排序,还能实现其他的复杂算法吗?

算法与语言无关。给任何算法,均可用汇编写出。

1232

关键词:排序,数据恢复,比较的语句
收获:比较语句的用法,除法的应用
疑惑 :汇编还有其他什么语句

好大的问题。查手册去。

1235

3个关键词:数据恢复,除法运算,汇编中的数组
2个收获:了解了16位和8位的除法运算,了解了字符形数据的合理处理
1个疑惑:为何用g指令运行时总是容易出现不运行的情况

不知你遇到了哪种情形?如此具体的问题,只能在其现身的情境中为你解释。

1236

关键词:结构体 除法 分支结构
收获:更进一步理解了数组在内存中的存储和多维数组的原理,多角度看数据;了解了分支结构,终于看到了汇编语言更高级的应用,晚上回去就要把冒泡排序用汇编写出来??
疑惑:课上讲到的结构体,感觉还是数组啊,只不过存的东西多了一点,如果要访问一个结构体的某个属性还是要数好它是第几个字节吗??

感觉结构体是数组,有一点道理。结构体的特殊之处在于,其各分量的类型可以不同。用汇编访问数据,搞清楚地址是必须的。

1237

三个关键词:指令  寄存器 内存空间
两个收获:用汇编实现结构体,寻址方式的应用
一个疑惑:c语言其他结构都可以用汇编实现吗

C语言能干的所有事,汇编都能干。

1238

3个关键词:寻址方式   div  dup伪指令
2个收获:1.学会了在实现应用程序时,使用恰当的寻址方式  2.学会了用div正确实现除法和用dup伪指令为内存空间中设置重复的值

 

1239

3个关键词:排序初解 复杂div  数据恢复
2个收获:汇编的数组操作  深刻认识到分段是以16个字节为单位
1个疑惑:有什么可以,主动弄坏u盘的方法吗??????这样实验数据恢复也方便

U盘放嘴里,使劲咬一口,然后……

1240

3个关键词:数据恢复、寻址、排序
2个收获:多角度看数据、正确的内存单元的寻址
1个疑惑:如何用汇编写出排序来

小组一起写一写,写出来就知道了。

1241

3个关键词:寻址长度,位置,排序
2个收获:定义二维数组,运用数组;为数据设置一个地址入口
1个疑惑:排序不会用啊

 

1242

寻址方式,数组,div
了解了div除法,知道了数据的多种数组存储方式
对按照地址偏移量找到响应内存的数据不是很熟悉

 

1243

关键词:分支结构,寻址要素,除法
收获:第一个收获是使用除法指令,第二个收获是分支结构,虽然只是看了一眼,拍了个照,但是课下也可以自己再学学。
一个疑惑:虽然除法里溢出的问题得到了解决,但是为什么不直接用后面的子程序,取消该除法指令呢?

留着不也很方便吗?

1244

关键词:数组 排序 字符串
收获:知道了应用数组方式,二维数组的应用。
对汇编排序也开始有了初步的了解。

 

1245

三个关键词:排序  bp指针寄存器  寻址
两个收获:1.搞明白了各种寄存器与内存之间的访问关系!2.dup如何重复的原理
一个疑惑:对老师最后讲得排序那个没有听懂

我只提示个思路,靠你做出来解决。

1246

寻址方式的多样,数组,排序。
知道了各种寻址方法,
知道了排序的基本方法。


网友评论

登录后评论
0/500
评论