烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
本文为《汇编语言程序设计》0902小节例程。点击链接…进课程主页。 用操作符offset取得标号的偏移地址 assume cs:codeseg codeseg segment start: mov ax,offset start ; 相当于 mov ax,0 s: mov ax,offset s ; 相当于mov ax,3 codeseg ends
本文为《汇编语言程序设计》配套实践。点击链接…进课程主页。 1. 实验目的 理解程序在访问内存单元时采用的各种寻址方式 学会基于字符的ASCII编码,进行大小写转换、简单加密等方法 学会用loop指令,结合寻址方式,编制单层和双层循环程序解决问题 2. 实验内容 任务0-完成本周课堂程序的调试 (1)有8位IT菜鸟工程师,第一行数据是他们的基本工资,第
本文为《汇编语言程序设计》配套实践。点击链接…进课程主页。 1. 实验目的 理解程序在CS和IP寄存器的控制下运行的过程 学会由汇编语言源程序到可执行文件的生成过程,学会用Debug运行程序 学会在程序中操作栈的方法 学会用loop指令编制循环程序解决简单问题 学会用bx和loop指令配合访问连贯的内存空间 2. 实验内容 任务1-编制第一个汇编程序 (1
本文为《汇编语言程序设计》配套实践。点击链接…进课程主页。 1. 实验目的 学会搭建汇编语言程序设计的软件平台 学会Debug实用程序的基本功能 对汇编指令、寄存器、内存空间产生直观的认识 2. 实验任务 任务0-搭建汇编语言实验环境 参考视频“0105 汇编语言实践环境搭建”,搭建汇编语言实验环境,以便于下面的工作。 如果使用的winXP,可以不安
准备汇编语言“带进位的加法”。 审视PPT初稿,将教材上的内容基本体现了。 但是,不足之处在于: 1. 举出的例子在程序运行时,体现不出进位; 2. 数据是逆序存放的,这个不能称为难点,但若不突破,其他的内容就很费解了; 3. 子程序行数不少,“套路”的东西占了一半,核心内容不突出。 改为下面的PPT: 效果: 1. 数据的进
【来信】 贺老师: 您好,我是一名大二的计算机学生,目前计算机网络和操作系统是双语教学,比如计算机网络用的是自顶向下原版。但是自我感觉这样的大部头我即使是中文每次课后都不一定能把当天需要读的内容读完,更何况英文。这样我每天上机操作的时间就会少很多。主要不是英文问题,而是时间安排问题,想请教老师,这样的大部头教材要怎么安排时间阅读?是每一页都看,还是听完课后当工具书查阅
本文为《汇编语言程序设计》0803小节例程。点击链接…进课程主页。 程序: assume cs:codesg, ds:datasg datasg segment db 60h dup (0) ;在此模拟要修改的数据不从偏移地址0处开始 db 'Yao','19800912' dw 15, 32 db 'SHH' datasg ends code
本文为《汇编语言程序设计》0703小节例程。点击链接…进课程主页。 问题:用寄存器SI和DI实现将字符串‘welcome to masm!’复制到它后面的数据区中。 assume cs:codesg,ds:datasg datasg segment db 'welcome to masm!' db '................' datasg
本文为《汇编语言程序设计》0702小节例程。点击链接…进课程主页。 例:用[bx+idata]的方式进行数组的处理 问题:在codesg中填写代码,将datasg中定义的 - 第一个字符串,转化为大写 - 第二个字符串转化为小写。 assume cs:codesg,ds:datasg datasg segment db 'BaSiC' d
本文为《汇编语言程序设计》0701小节例程。点击链接…进课程主页。 例:汇编程序中字符的表示 assume cs:code, ds:data data segment db 'unIX' db 'foRK' data ends code segment start: mov al,'a' mov bl,'b' m
学生倪畅编了一个汇编程序,用记事本编辑的,如下图: 他的文件可以下载,点这里…。 程序很简单,目测没问题。 但编译后是这样的: 奇了大怪了,第一行有多余字符,看不见啊! 用debug看: 太明目张胆了,就是划红圈的这3个符号! 怎么进去的? 在记事本中删除不了! 新建一个文本文件。将nc.asm中的内容复制、粘贴
汇编语言程序设计课到第4周。这周的课后总结中,让同学们写下“我的疑惑”。这倒好,真引出了一大堆好问题,其实,这也就是大家学习的最真实情况。 为同学们的解答公布如下。下一周,老贺不做这种一对多的事情了,我们开启互评模式,靠同学们的多对多,完成更有意义的深入交流。 学号 学生小结 老师点评 (14)1147 我得到的知识: loop指令和[bx]指令的运用及其相关的内容,还有
5年前,由CSDN博客,发现了米老师和他的信息技术提高班,写了《向米新江老师学习》,于是结识了一位好朋友。几次的深谈,脑洞大开,对我的帮助非同小可。 5年间,“信息技术提高班”,已经成为“大米时代”,米老师的事业越办越顺,学员的入职薪金一路猛涨到令人惊叹,不是实地考察,不敢相信。 5年间,我在“计算机老师”的标签中,剑走偏锋,将自己的职业“老师”排第一,将专业“
早起准备今天的工作。 昨天录课,“寻址方式的综合应用”一节屡屡出错,决定重讲,放弃昨天的“成果”。 细琢磨示例,DEC是个什么公司?PDP、VAX是什么东东?Ken Olsen又是个谁?70后的老头子现在是知道,95后孩纸有障碍。 换成我们的姚明吧!数据变一变,结构不影响。 人见人爱,高人N头的姚明,没见过真人,却听见就亲。看到这个例子,会产生“注意
题记:一次为学生的答疑,美妙的过程。 【学生】 老师 在不 【学生】 【学生】 咋总是这样呢?不明白哪里错了,为啥用e改不了 【学生】 好气哦 【迂者】 你的电脑得砸了,不能用 【学生】 。。。。。。很悲剧 【迂者】 是改了,但又变了 【迂者】 你想想,想不出来我再告你 【迂者】 你改的是一块特殊的区域 【学生】 咦 我想想 【学生】
题记:本文记录与一位同学的对话。重点在后面。如果是在QQ群中的交流,可以知道对我们这个群体的益处。但问题就在于,有些同学有点害羞。对话中我发现我们的同学们不该有的负担,这是个问题。以我的教学实践,老师作为对内容熟悉的人,思考问题的角度,常会忽略初学者遇到的障碍,而问题一旦由同学问出,常会耳目一新:这是个好问题。然而,同学们,却如本文同学一样,觉得是个傻问题。若就这样闭上嘴巴,
1 实验目的 学会搭建汇编语言程序设计的软件平台 学会Debug实用程序的基本功能 对汇编指令、寄存器、内存空间产生直观的认识 2 实验内容 任务0-搭建汇编语言实验环境 参考视频“0105 汇编语言实践环境搭建”,搭建汇编语言实验环境,以便于下面的工作。 如果使用的winXP,可以不安装DOSBOX模拟器,而是用XP的MS-DOS方式运行masm文件夹中
本文为《汇编语言程序设计》0603小节例程。点击链接…进课程主页。 问题:利用栈,将程序中定义的数据逆序存放。 assume cs:code,ds:data,ss:stack data segment dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H data ends stack segment dw 0,
本文为《汇编语言程序设计》0503小节例程。点击链接…进课程主页。 问题:利用栈,将程序中定义的数据逆序存放。 assume cs:codesg codesg 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
本文为《汇编语言程序设计》0601小节例程。点击链接…进课程主页。 问题:编程计算以下8个数据的和,结果存在ax 寄存器中 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 解决方案1(这个程序有问题) assume cs:code code segment dw 0123H,0456H,0789H,0a
本文为《汇编语言程序设计》0504小节例程。点击链接…进课程主页。 问题:计算ffff:0~ffff:b字节单元中的数据的和,结果存储在dx中 assume cs:code code segment mov ax,0ffffh mov ds,ax mov bx,0 mov dx,0 mov cx,12 s: mov al,[b
本文为《汇编语言程序设计》0503小节例程。点击链接…进课程主页。 问题:计算ffff:0006字节单元中的数乘以3,结果存储在dx中 assume cs:code code segment mov ax,0ffffh mov ds,ax mov bx,6 mov al,[bx] mov
本文为《汇编语言程序设计》0502小节例程。点击链接…进课程主页。 例:编程计算2^12 assume cs:code code segment mov ax,2 mov cx,11 s: add ax,ax loop s mov ax,4c00h int 21h code ends end 问题:计算123x23
本文为《汇编语言程序设计》例程。点击链接…进课程主页。 第一个汇编程序: assume cs:codesg codesg segment mov ax,0123H mov bx,0456H add ax,bx add ax,ax mov ax,4c00h in
地点:C语言在线课程答疑区 事件:有学生发言,我对答。此文作为记录。 【学生】感觉好难。。 【迂者】狭路相逢勇者胜。临上战场腿肚子哆嗦,那就死定了。 【学生】有什么技巧吗? 【迂者】当你迈不开腿的时候,还谈不到技巧,技巧是给那些已能闪转腾挪的人用的。此时,要的是心态。入门时的,一招一式,该做的做了,该有的就有了。 $(
【问】 我是一个刚接触C语言的大一学生,发现好多英文都不认识,有没有那种专门的计算机英语书啊? 【点评】 这是我的一位网络学员提出的问题。搜索以前回复的信件,还没有正式解答过这个问题。 需要更正的是,学C语言,被里面的英文吓住了,不敢学了,学不下去了,其实问题首先是学C语言本身的问题,其次是心理问题,似乎和英语有一点点关系,但真不大。 先说学C语言本
【留言】 贺老师,您好。今天是我第一次看到您的博客。(要是大一的时候看到就好)我想向您寻求一些建议:我是山西一所不知名二本学校网络工程专业2016届的毕业生,去年是我第一次参加考研,因为自己的彷徨和复习效果不好最终选择了重庆邮电,当然这所学校相对我们学校来说是很不错。去年复试的时候因为专业面试的时候有些许紧张和表达的不够清晰使得最终复试没有通过。很多人都说一个好的导师很
同学们好,这一学期,我将陪伴大家学习汇编语言程序设计。 说到汇编语言,大家都知道它是一门低级语言。有多低级呢?计算机直接执行的是机器指令,就是二进制0、1序列,汇编语言使用一些助记符号代表这些指令。用汇编语言编程,直接操纵CPU中的寄存器,直接控制内存空间,可以说是直接操纵了计算机最底层的硬件。而我们现在,在绝大多数的情况下,都是在用高级语言编程解决问题,是不会接触计
【学生提问】 老师对于有些程序设计的代码写法,不理解的时候,我是不是应该先背下来,或者做个记录,以后要用的时候,再参考,还是用什么方式彻底弄懂?这个对于算法的理解,有什么提高的方法和步骤吗? 【答复】 首先,我不赞成在不理解的情况下强记的方法。不理解先强记,对于某些少数的人文类知识,如诗词,是可以的,因为那些内容,一字不差是基本要求。各学科都有其内在逻辑,对绝大
【来信】 贺老师: 您好! 我曾经和您交流过几次,受益匪浅。我现在大二,从大一开始,就觉得mooc上很多课程比自己的老师讲得好,很多教材比授课使用的好。但是我们的平时成绩划分严格,出勤,阶段性测试,上机考试,平时作业等等。还有翻转课堂,可能被抽中上讲台讲解。不可能逃课,因为出勤与平时成绩挂钩,不用自己的教材也不行,因为不利于平时的测试和作业。所以我每天晚上也是在
【来信】 贺老师你好,我是一名在校大专生,幸运的读了您写的逆袭大学,让我对未来产生莫大的憧憬,可现实却是我身在一个自己丝毫不敢兴趣的专业(数控) 曾经我是一名网瘾青年,对此丝毫不在意,做着自己游戏打的好说不定就能去打职业什么的美梦。直到现在我清醒过来了,我热爱计算机,我热爱他的一切,他的每个01都是那么的迷人,但是此时的我却陷入一片迷茫。一年半的日子,我接下去该怎么走
【项目1-复数结构体】 编写一个程序,首先定义一个复数数据类型,即结构类型。然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。 #include <stdio.h> struct complex { int re; int im; }; int main() { struct complex x,y,s
2878: 结构体–学生信息排序 Description 定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入5个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。 Input 先输入5名学生的信息,按学号顺序排序输出后在输入要统计的院系名称 Output 先按学号从小到大的顺序输出学生信息 Sample Input zha
2877: 结构体—职工信息结构体 Description 编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。 Input 输入5个员工的职工姓名、工作年限、工资总额 Output 输出两部分,第一部分输出工资变化之前
2428: 计算该日在本年中是第几天 Description 定义一个结构体变量(包括年、月、日)。编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出。 Input 年月日 Output 当年第几天 Sample Input 2000 12 31 Sample Output 366 HINT 主函数已给
2428: 计算该日在本年中是第几天 Description 定义一个结构体变量(包括年、月、日)。编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出。 Input 年月日 Output 当年第几天 Sample Input 2000 12 31 Sample Output 366 HINT 主函数已给
2290: 字符串的修改 Description 一个字符串s、一个字符串t,判断t是否是s的子串,若是则将s中所有出现了t串的地方换成指定的字符或字符串p,若不是,则输出NO Input 一个字符串s、一个字符串t,要换的字符或字符串 Output 输出修改后的s串 Sample Input** asdfasdf 132 saf Sample Output
2305: 你就成了我 Description 编写一个C程序实现将字符串中的所有”you”替换成”we” Input 输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束 Output 对于输入的每一行,输出替换后的字符串 Sample Input** you are what you do Sample Output we are
2874: 包含B的字符串 Description 输出n个字符串,把其中以包含字母B或b的字符串输出。 Input 第一行 n 第二行到第n+1行,每行一个字符串 Output 包含字母B或b的字符串 Sample Input** 6 Ada Bob Tom Brown Jobs Alice Sample Output Bob Brown Jo
2424: 字符串比较 Description 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int stringcmp(char *p1,char *p2); 设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0,若s1≠s2,返回它们二者第1个不同字符的ASCII码差值(如”BOY”与”BAD”,第2个字母不同,”
2569: 统计字符串种类 Description 用指针编写一个程序,输入字符串后,统计其中各种字符的个数,输出其中大小写字母,数字,以及其他字符的个数。 主函数已经给出,请编写统计字符种类函数。 Input 一串字符串 Output 该字符串中大小写字母,数字,以及其他字符的个数,最后输出总字符串长度。 Sample Input** I play LOL fo
2802: 判断字符串是否为回文 Description 编写程序,判断输入的一个字符串是否为回文。若是则输出“Yes”,否则输出“No”。所谓回文是指順读和倒读都是一样的字符串。 Input Output Sample Input** abcddcba Sample Output Yes 参考解答: #include<stdio.h> #inclu
2274: 字符串插入 Description 将字符串t插入到字符串s中,在位置pos后插入。不得使用字符串操作函数,输出组合成的字符串。 Input 输入两个字符串(t和s)和要插入的位置(pos) Output 输出组合后的字符串 Sample Input** qwe jij 3 Sample Output jijqwe 参考解答: #includ
2284: 按长度截断 Description 输入一个字符串,将其按给定的长度n格式化并输出,若n=0,则输出原字符串 Input 输入一个字符串 Output 格式化并输出 Sample Input** asdfasdf 3 Sample Output asd fas Df 参考解答: #include<stdio.h> int main(
1052: 两个字符串连接 Description 写一函数,将两个字符串连接 Input 两行字符串 Output 链接后的字符串 Sample Input** 123 abc Sample Output 123abc 参考解答: 函数版参考1: #include<stdio.h> void stringcat(char *s1, cha
2417: 字符串长度 Description 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 Input 一行字符串 Output 字符串长度 Sample Input** t9g(*&WE3@#$fw2adECWEr Sample Output 22 HINT 主函数已给定如下,提交时不需要包含下述主函数 /* C代码
2279: 字符串分段(串) Description 输入一个字符串,将其分段输出,分段符为除字母和数字之外的符号。 Input 输入一个字符串 Output 输出分段后的字符串 Sample Input** ad/adfa,,123d?#a1 Sample Output ad adfa 123d a1 参考解答: #include <stdi
2568: 字符串逆序输出 Description 编写一个函数,功能是使输入的字符串逆序输出。 Input 输入一串字符串,注意字符串中不要有空格。 Output 输出该字符串的逆序。 Sample Input** ABCDEFG Sample Output GFEDCBA HINT #include<stdio.h> #include<
2886: 大写改小写 Description 输入字符串(长度20以内),将字符串中大写字母改为小写字母,其他字符不变,输出改变后的字符串。 Input 一个字符串(长度20以内) Output 输出改变后的字符串(改变规则:将字符串中大写字母改为小写字母,其他字符不变) Sample Input** ABC123bus Sample Output abc123
2886: 大写改小写 Description 输入字符串(长度20以内),将字符串中大写字母改为小写字母,其他字符不变,输出改变后的字符串。 Input 一个字符串(长度20以内) Output 输出改变后的字符串(改变规则:将字符串中大写字母改为小写字母,其他字符不变) Sample Input** ABC123bus Sample Output abc123