烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
本文为《汇编语言程序设计》1603小节例程。点击链接…进课程主页。 问题:以十六进制的形式在屏幕中间显示给定的byte 型数据。
本文为《汇编语言程序设计》1602小节例程。点击链接…进课程主页。 知识点:代码段用标号 例:求2^8 assume cs:code code segment start :mov ...
本文为《汇编语言程序设计》1601小节例程。点击链接…进课程主页。 任务:显示信息的一种“直接”方式——例:编程序,在屏幕的中间,白底蓝字,显示‘Welcome to masm!’ 程序:...
【任务】在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。
【任务】 内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90~100、60~89、60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中。
【任务】定义一个数据区, 它包含有’ABCD’四个字符数据, 把这个数据区复制20次, 并显示出复制结果。
【任务1】编程序,统计数组array中负数的个数, 并存入count单元中。 data segment array db -1, 0, 3, -6, 7, 23, 0, -50, ...
【任务】编程计算:W=X+Y+36-Z 说明:X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2的存储单元中,结果的低十六位字和高十六位字分别存放在W和W+2两个单元中。
【任务】 编程统计da1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。
【任务】用串传送指令,将beg_copy到end_copy的代码复制到0:200H处 assume cs:codeseg codeseg segment start: .
【任务】编一个子程序,在16个字节型数据中找出最小值,存放于y处 assume cs:code,ds:data data segment x db 5, 6, 7, 8, 16, 4...
【任务】 补全下面的程序,其功能是计算y的值 assume cs:code,ds:data data segment x db 45h y db ? data e...
【任务】 编写程序,将数据区中定义的以0作为结束符的一个字符串中所有的大写字符,全部转换为小写。
【来信】 我是一个普普通通的农村孩子 现在在读大二 上的一所民办大学 每年上万的学费 其实对我们家来说挺困难的 可是我想上 我爸也支持我 快上大三了 其实一直有个困扰 我...
在VS2008中编写汇编语言程序,整个步骤与写C++程序类似。查目录,汇编程序ml.exe和连接程序link都在VC的bin中,这也就不见怪了。 具体的步骤是: 1、新建简单的VC控制台应用程序 A、打开Microsoft Visual Studio 2008,选择主菜单“File” B、选择子菜单“New”下面的“Project”,打开“New
【任务】 编制一个子程序,求y=x4y=x^4,自变量 xx 为字节,应变量yy可以在一个字内存放而不溢出 (1)版本1:子程序的参数由寄存器dl提供,返回结果在ax中; (2)版本2:子程序不变,主程序中提供如下数据区,在主程序中,循环调用子程序,完成y=x4y=x^4的求解,并将结果存入在相应的数据区: data segment x db 1
一个近(near)调用的程序 一个简单的包含子程序的汇编程序是: ; 要设置栈段,以便于call和ret指令使用 assume cs:code, ss:stack stack segment db 16 dup (0) stack ends code segment start: mov ax,stack mov ss,
【前言】 什么前言?要不想听老贺讲故事,直接看正文。 教C/C++课时,曾带领弟子们用手机编程序。程序稍大就不好玩了,但遇个小程序,那还是很爽的。尤其是第一次课,就在课堂,还没有在台式机上干活时。 这学期教汇编语言,也想过这事,没有落实。 其实这事应该简单,如果有Android中的DOS模拟器,那就一切妥了。 今天,和DosBox Turbo偶遇
【问题】 不理解wait指令是干什么用的,还有就是可不可以给栈段社标号,然后用offset获取栈段的偏移地址呢?jmp指令只能在代码段中跳转吗,能不能跳到数据段? 【解答】 wait指令?我给你的手册呢? offset是求偏移地址,并不针对具体哪个段,哪个段中的都可以。 jmp是流程的跳转,应用只在代码段中跳。但从原理上,你可以跳到任意地方,那就要将数据当指令用了,
学号 总结内容 答复 201460501147 转移指令简单的jmp指令比较,复制代码段 1102 本周颇有心得的是: 对于循环,转移指令的具体用法和认识有了更多的了解,特别是在在小组作业中利用循环做双重循环实现冒泡排序以及求某些数据和并存去内存相应位置。而对于转移指令jmp,个人的主要了解还是在进行判断时的转移执行其他相应指令。课前及课上又学习了将某一段代码复制
学生 总结内容 回复 1147 div指令,内存寻址,数组用dup设置内存空间重复的值,根据指令,分析操作数的类型和地址 1104 3个关键词:除法,dup操作符,汇编结构体2个收获:1.使用div指令进行除法运算,也分为除数的位数,有一点疑问就是如果我的除数是0,那运行会不会是像C语言那样报错呢,那如果报错,怎样能避免或者检测这个除数的值呢?2.dup可以进行数据的重复
这学期开汇编语言课。选教材时有过纠结,随着课程的开展,为备课,又多看了一些汇编的书,几本教材鲜明的特点,萌发了将教材分分类的念头。 一类教材,称为教学型教材。例如,我们选定的王爽老师的《汇编语言》。其特点是,能够循序渐进地展开内容,在介绍知识的同时,展现学科思维,安排学习活动(如问题、检测、实验等),将书看下去,就是一个很自然的学习过程。概括地说,就是始终围绕着学生
【来信】 我看了老师的逆袭大学,里面提到的写博客就是在csdn把自己写的代码当文章写吗,还有书里面说学编程不绕过英语,我的基础不好,高中三年到高考英语都没及过格,从去年寒假每天都坚持背15个单词,在读一小段微信上新东方推出的文章,感觉收效甚微,编译器的错误还是要在百度才能看懂,而且老师布置的英语作业也还是做不动。 【回复】 来信:写博客就是在csdn把自己写的代码当
【老师留言】 教学改革真不是件容易的事。老师有创新的思维,想尽了各种办法,花费了大量时间精力,有些学生却依旧喜欢按以前那样按部就班的上课,怎么办呢!有时自己都有点灰心,想放弃了! 【我的回复】 1. 不要冒进。不考虑学生感受的教学改革,不可取,以学生的学为中心的教,要求我们改变心态。 2. 寻求理解。布置学习任务中,稍微花一点点时间,给学生讲一讲依据的认知
1. 实验目的 能分析各种跳转指令构成的程序的运行原理 会用跳转指令构造循环解决应用问题 体验显示缓冲区的要求 2. 实验内容 任务1-奇怪的程序? 人工分析下面的程序,然后再在Debug程序中单步执行,观察每一步完成后的结果,并解释出现的现象。 程序如下: assume cs:codesg codesg segment mov
任务:编程序,在屏幕的中间分别显示绿色、绿底红色、白底蓝色的字符串 ‘YantaiUniversity’ 提示:要计算出“屏幕的中间”对应的内存单元,然后将字符以及对应的属性字节写入到内存中。 参考解答: assume cs:codeseg, ds:datasg datasg segment db 'YantaiUniversity' datasg e
任务:将beg_copy到end_copy的代码复制到0:200H处 assume cs:codeseg codeseg segment start: ... beg_copy: mov ax, 0 add ax, ax wait end_copy: nop codeseg ends end start 参考解答: assum
求平均成绩 在下面的数据段中,给出了全班3名同学OS、AL、SE、DB课程的成绩,请编程计算出平均成绩,写在 ? 处。 datasg segment db '201558501111','MMTJAB ',90,100,76,89,? db '201558501112','ZhangAP ',97,82,79,88,? db '201558501113'
汇编语言能实现冒泡排序等排序算法吧?当然可以,排序可不是什么复杂的东东。就在第7周,给大家补充一下cmp、jxxx、xchg指令,下面的冒泡就出来了。 可以对照着附后的C语言排序实现理解。 assume cs:cseg, ds:dseg, ss:sseg sseg segment stack dw 10H dup (?) sseg ends dseg
2017年4月17日,《上大学,不迷茫》慕课本学期第一次见面课开讲。 这个课2016年建成,由智慧树网提供运营服务。2016年秋已经在省内开了一轮,通过东西部联盟评审之后,首次在全国范围内投放,共有17个省区30所学校4000余名学生选修。 见面课已经走过了一轮,整个的教学目标、内容的设计,从框架上没有发现大问题。本学期第一次,将内容稍做了些修改,算是完成了准
本文出自《改变你的教学设计》群中交流。 惊闻周老师为翻转课堂的资源要付出1:40的时间,为这种在教学上的投入点赞。结合自己的经历,我1小时的视频,配齐测试、实践,也大概是10小时左右,想给周老师做些建议,把工作量降下来。方向是,降低在视频制作中用于制作上的时间,最主要的措施,就是将出镜、字幕暂时取消。 (1)出镜的理由是出于情感方面的考虑,而这一点,针对我们做的
下午的上机课,有位同学写的程序死了。她百思不得其解。 我看了几遍程序,没有发现问题。 多次观察后,发现程序修改数据时,由于循环次数错误地设多了,以致于改到了代码段——代码段的指令于是被当作数据改掉了,而此处的数据,当然它仍然还要被当作指令执行,恰好对应了wait指令!于是,程序进入了等待…… 那程序到底有没有问题?我看的程序没有问题,但运行的,却是老版本
在8086汇编中,在masm5.0下link的时候出现warning L4021: no stack segment是习以为常的现象。 如,针对下面的程序: assume cs:codesg,ds:datasg datasg segment dw 1,2,3,4,5 datasg ends codesg segment start: mov ax, da
【来信】 贺老师: 您好! 我准备走考研的道路,目标是北京某985大学,这并不简单,而且去年考研的形势很不乐观,一大批学长学姐想考好学校都没能如愿。对于差不多开始准备考研的我来说,压力很大。但我最主要的烦恼还是,下不了置之死地而后生去考研的觉悟,调整不了自己的心态。 我觉得主要还是与我自身的成长经历有关。我是一个小城镇的非常普通的家庭孩子,很少有机会接触更广阔
【前言】 今天,在周付安老师的“改变你的教学设计”群中,大家提到了如何让学生主动提问的事。这方面,我在这学期有点故事,分享一下。 【课前故事】 这学期汇编语言开课后,建了云班课,有了QQ群,开始有学生个别和我交流。 第二周星期天的下午,有学生QQ小窗问我问题,我做了记录《汇编:用e命令为啥改不了内存的值?》。接下来又一个同学的问题,见《机器码与汇编指令的对
每周上完课,布置一个作业——总结。这将作为一个要坚持的事情。这个想法来自去年暑假学到的“行动学习”中的“复盘”技术,逐渐坚定在近日学习的教学设计。将总结作为一个轻量级的复盘用吧,乘着刚刚学过,将脑中尚留的东东,包括情感,给个表达的机会,由此而形成固化。 只是苦了我的学生们。他们周一满课,不少同学只能是晚上再写。其实,这个时候,脑子里留存的东西可能已经不算太多了,乘此再追一下,也有好处。
求总成绩 在下面的数据段中,给出了全班5名同学OS、AL、SE、DB课程的成绩,请编程计算出总成绩,写在0值处 datasg segment dw 54, 74, 71, 52, 0 dw 68, 54, 93, 95, 0 dw 81, 52, 97, 67, 0 dw 98, 77, 69, 99, 0 dw 79, 7
转圈求和 (1)写程序,对给出的8个数,将相邻的数求和(最后写第一个数与最后一个数的和),并把结果写在其后。在下面的示例中,求和的结果为3 5 7 9 11 13 15 9。 datasg segment dw 1, 2, 3, 4, 5, 6, 7, 8 dw 0,0,0,0,0,0,0,0 datasg ends 提示1:相邻的
字符串加密 (1)编程为datasg段中字符串中的每个字符加密,加密规则是:每个字符的ASCII值加4。加密好的字符写在待加密字符的后面 assume cs:codesg,ds:datasg datasg segment db 'aah, I love you!' db '................' datasg ends codesg
有8位IT菜鸟工程师,第一行数据是他们的基本工资,第二行是绩效工资,编程求出总工资放在第三行。 多多多多加工资哈。 data segment dw 6290, 7230, 2943, 3360, 7469, 6871, 3067, 3086 dw 7288, 7160, 5733, 7030, 5281, 6891, 4853, 4539
【来信】 贺老师,你好,我是一名普通2本院校的学生,专业是信息工程。现在是大一下学期了,大一上学期的时候刚接触C语言,自己对这方面很感兴趣,当时上学期准备转到软件工程,但我们的班主任老师说:”计算机学院厉害的老师都抽调出来了组建了我们的信息与通信工程学院,剩下的都是些大猫小猫,而且计算机专业学的我们都学,而且还比他们多学一个大数据。”(我当时就被这句话给震住了,放弃了转
本文为《汇编语言程序设计》1105小节例程。点击链接…进课程主页。 编程:将data段中的第一个字符串复制到它后面的空间中。 data segment db 'Welcome to masm!' db 16 dup (0) data ends 程序: code segment start: mov ax,data
本文为《汇编语言程序设计》1104小节例程。点击链接…进课程主页。 给出下面一组数据: data segment db 8,11,8,1,8,5,63,38 data ends 请编程实现如下统计,用ax保存统计结果 (1)统计数值为8的字节的个数 (2)统计数值大于8的字节的个数 (3)统计数值小于8的字节的个数 参考解答: (1)统计数
本文为《汇编语言程序设计》1102小节例程。点击链接…进课程主页。 编写一个子程序,对两个128位数据进行相加。 名称:add128 功能:两个逆序存放的128位数据进行相加 assume cs:code,ds:data ;这里的128位在data空间中是逆序放置的,就是从低位到高位排列的 data segment dw 0A452H, 0A8F5H, 7
本文为《汇编语言程序设计》1005小节例程。点击链接…进课程主页。 问题:编程将data段中的字符串转化为大写。 assume cs:code data segment db 'conversation' data ends code segment start: mov ax,data mov ds,ax
本文为《汇编语言程序设计》1004小节例程。点击链接…进课程主页。 模块化程序结构 assume cs:code code segment main: ... call sub1 ;调用子程序sub1 ... mov ax, 4c00h int 21h sub1: ... ;子程序sub1开始
本文为《汇编语言程序设计》1002小节例程。点击链接…进课程主页。 功能:计算2的N次方,计算前,N的值由CX提供。 ;(下面的程序逻辑上正确,但存在严重错误!) assume cs:code code segment start: mov ax,1 mov cx,3 call s mov bx,ax mov a
本文为《汇编语言程序设计》1001小节例程。点击链接…进课程主页。 用ret返回 assume cs:codesg, ss:stack stack segment db 16 dup (0) stack ends codesg segment mov ax,4c00h int 21h start: mov ax,stack
本文为《汇编语言程序设计》0904小节例程。点击链接…进课程主页。 jcxz指令 assume cs:codesg codesg segment start: mov ax,2000H mov ds, ax mov bx,0 s: mov cx, [bx] jcxz ok inc bx in
本文为《汇编语言程序设计》0903小节例程。点击链接…进课程主页。 jmp指令:依据位移进行转移 程序1: assume cs:codesg codesg segment start: mov ax,0 jmp short s add ax,1 s: inc ax codesg ends end start 程序2: