汇编语言

汇编语言实现通过8255A和4个开关控制实现8个LED灯和8个7位数码管显示指定数字全亮、全灭、从左至右、从右至左跑马灯式点亮

余生颓废 提交于 2019-12-05 23:47:41
最后改进代码: .MODEL TINY .STACK 100 .DATA ledshow DB 11111110B ;数据段定义变量按“变量名 数据类型 数据”;DB为字节型 seven DB 07h zero DB 00h .CODE START: A equ 0270H ;数码管端口地址 B equ 0271H ;0-1开关端口地址 C equ 0272H ;控制数码管显示内容 mov ax,@DATA ;获得当前程序的数据段地址,并传送给数据段DS寄存器保存。 mov ds,ax ;这样,程序中访问存储器操作数时,默认情况下就会从DS指定的数据段进行存取 mov dx,273h mov al,10000010H out dx,al function: call delay mov dx,B in al,dx ;从dx端口地址中将数据读入到al中 and al,00001111B cmp al,00000001B je fun1 cmp al,00000010B je fun2 cmp al,00000100B je fun3 cmp al,00001000B je fun4 fun1: mov dx,A mov al,00H out dx,al ;将al中的值读出到dx端口地址中 jmp function fun2: mov dx,A mov al,0FFH out dx

计算机的编程语言

你离开我真会死。 提交于 2019-12-05 22:41:41
参考: https://blog.csdn.net/wordsin/article/details/80544602 https://www.cnblogs.com/ysocean/p/7580162.html https://www.jianshu.com/p/c60a9c2131c3 0. 简述 在计算机体系中,指令就是指挥计算机工作的指示和命令。不管是哪种计算机语言编写的程序,在执行时最终都会转化为计算机能识别的01二进制指令序列。本文简单讲讲计算机编程语言。 下面一张图是C语言、汇编语言以及翻译过的机器语言 。 1. 机器语言 是 用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统令的集合。 需要注意的是现在除了计算机生产厂家的专业人员外,一般是不需要学习机器语言了。 2. 汇编语言 汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上, 汇编指令是机器指令便于记忆的书写格式 。 汇编语言的三个特点: 机器相关性 ,不同处理器指令集不同,故移植性不好。 高速度和高效率 ,直接操作的是寄存器或存储器。 编写和调试复杂 (相对于高级语言)。 一个优秀的底层程序员还是要对汇编指令有所了解。 3. 高级语言 前面的机器语言和汇编语言我们都有一定了了解了,汇编语言也是和机器语言一样,都是直接对硬件进行操作,但是汇编语言指令采用了英文缩写的标识符

程序员需要了解的硬核知识之汇编语言(一)

会有一股神秘感。 提交于 2019-12-05 19:27:07
之前的系列文章从 CPU 和内存方面简单介绍了一下汇编语言,但是还没有系统的了解一下汇编语言,汇编语言作为第二代计算机语言,会用一些容易理解和记忆的字母,单词来代替一个特定的指令,作为高级编程语言的基础,有必要系统的了解一下汇编语言,那么本篇文章希望大家跟我一起来了解一下汇编语言。 汇编语言和本地代码 我们在之前的文章中探讨过,计算机 CPU 只能运行本地代码(机器语言)程序,用 C 语言等高级语言编写的代码,需要经过编译器编译后,转换为本地代码才能够被 CPU 解释执行。 但是本地代码的可读性非常差,所以需要使用一种能够直接读懂的语言来替换本地代码,那就是在各本地代码中,附带上表示其功能的英文缩写,比如在加法运算的本地代码加上 add(addition) 的缩写、在比较运算符的本地代码中加上 cmp(compare) 的缩写等,这些通过缩写来表示具体本地代码指令的标志称为 助记符 ,使用助记符的语言称为 汇编语言 。这样,通过阅读汇编语言,也能够了解本地代码的含义了。 不过,即使是使用汇编语言编写的源代码,最终也必须要转换为本地代码才能够运行,负责做这项工作的程序称为 编译器 ,转换的这个过程称为 汇编 。在将源代码转换为本地代码这个功能方面,汇编器和编译器是同样的。 用汇编语言编写的源代码和本地代码是一一对应的。因而,本地代码也可以反过来转换成汇编语言编写的代码

1.3编程语言

一笑奈何 提交于 2019-12-05 14:21:19
计算机程序成为软件,是告诉计算该做什么指令。 机器语言 计算机的原生语言因计算机类型的不同而有差异,计算机的原生语言就是机器语言,即一套内嵌的原子指定集。因为这些指令都是以二进制代码的形式存在,所以,为了以机器原生语言的形式给计算机指令。例如,为进行两数的相加,可能必须写成如下的二进制形式: 1101101010011010 汇编语言     用机器语言进行程序设计是非常单调乏味的过程。而且所编的程序也非常难以读懂和修改。为此,在计算的早期就创建了汇编语言,作为机器语言的替代品。汇编语言使用短的描述性单词(称为助记词)来表示每一条机器语言指令。例如,助记词add一般表示数字加sub表示数字减。将数字2和数字3相加得到结果,可以编写为如下汇编代码:   add 2 , 3 , result   汇编语言的出现降低了程序设计的难度。然而计算机不理解汇编语言,所以需要使用一种称为汇编器额程序将汇编语言程序转换为机器代码。   使用汇编语言写代码比使用机器语言容易。然而用汇编语言写代码依然很不方便。汇编语言中的一条指令对应机器代码中的一条指令。用汇编语言指令写代码需要知道CPU是如何工作的。汇编语言被认为是低级语言。因为汇编语言本质上很接近机器语言,并且是机器相关的。 高级语言   20世纪50年代,新一代编程语言及众所周知的高级语言出现了。他们是平台独立的,这意味着可以使用高级语言编程

2019-2020-20191201《信息安全专业导论》第8周学习总结

馋奶兔 提交于 2019-12-05 12:31:49
2019-2020-20191201《信息安全专业导论》第8周学习总结 教材学习内容总结 《计算机科学概论》:第9章是关于面向对象设计,具体是根据对象的属性和行为把它们抽象成类。而汇编器可以把汇编语言程序翻译成机器码,编译器则可以把用高级语言编写的程序翻译成汇编语言或机器码。其次就是程序,程序可以用布尔表达式来判断执行哪部分代码。 《自学是门手艺》:第12章讲的是刻意思考,它就相当于一种很有效的自学能力,学会这种能力至精通,就能达到活学活用的境界~;第13章是讲战胜难点--另一项十分有用的能力;第14章第1节主要是一些基本术语,第12章就是那些术语在Python里的具体体现。 代码调试中的问题 那个小学四则运算编程实践实在算一个挑战了,参数传递实在看不太懂,动手实践也就因此较为困难,不太会导入。。。 学习进度条 代码行数(新增/累积) 目标 10000 第8章 180/1449 来源: https://www.cnblogs.com/WANTED/p/11925235.html

2019-2020 20191302《信息安全导论》第八周学习总结

情到浓时终转凉″ 提交于 2019-12-05 12:21:03
教材重点总结 面向对象设计的重点是确定问题的对象,并根据对象的属性和行为把他们抽象成类,分解的四个阶段。 1、集体讨论:为确定问题中的类进行第一次讨论。 2、过滤:检查提出的类。 3、场景:确定每个类的责任。 4、责任算法:为每个责任编写算法。 汇编器可以把汇编语言程序翻译成机器码。 编译器可以把用高级语言编写的程序翻译成汇编语言。 程序中的每个变量都有自己的数据类型。 存在多种高级程序设计语言的模型,分为命令式或声明式 云班课作业完成情况 自己无法独立完成四则运算,只能去网上找相关的程序,也不能完全看懂程序,明白自己python水平还差得多,还要努力。相信自己总有一天能独立完成这样的编程任务的,我会在以后对python的深入学习中以这个程序为例,深入了解python的语法等知识。 来源: https://www.cnblogs.com/dongjiashuai/p/11924826.html

汇编语言实现通过8255A和4个开关控制实现8个LED灯全亮、全灭、从左至右、从右至左跑马灯式点亮

折月煮酒 提交于 2019-12-05 05:08:03
汇编代码及解释如下: .MODEL TINY .STACK 100 .DATA .CODE start: ; set segment registers: mov bl,0feh ;先将bl通用寄存器的值置为1111 1110(实验室的实验箱中电路没有设置反相器,故设为7个1,1个0) mov dx,273h ;将273h送入地址寄存器dx,根据课本P169中8255A的端口操作表,由于273h中3对应0011,故A1A0=11,对应数据总线->控制寄存器,即为写入控制字做准备 mov al,10000010b ;将1000 0010写入al通用寄存器中 out dx,al ;将1000 0010设为8255A的控制字,根据课本P171中8255A的方式选择控制字可知D7...D1D0=1...10,故B口输入C口输出(以上四行为8255A的初始化程序) go: mov al,0ffh ;初始化al通用寄存器,初始化其值为1111 1111 mov dx,272h ;将272h送入地址寄存器dx,根据课本P169中8255A的端口操作表,由于272h中2对应0010,故A1A0=10,对应C口 out dx,al ;将al中的数据写入dx对应端口(即将al中数据写入C口) mov dx,271h ;将271h送入地址寄存器dx,根据课本P169中8255A的端口操作表

汇编语言复习提纲

99封情书 提交于 2019-12-05 00:07:09
第一章:掌握各进制的转换,有符号数的补码表示 1.1 各进制的转换 10进制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16进制 1 2 3 4 5 6 7 8 9 A B C D E F 2进制 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 十进制数一般用D、二进制数用B、八进制数用O、十六进制数用H来表示。 例如:10101100B,115D ,0075H等。 例: (1)N=45D 十进制数转换为二进制数(用除以2取余) 45/2 = 22 (a0= 1) 22/2 = 11 (a1= 0) 11/2 = 5 (a2= 1) 5/2 = 2 (a3= 1) 2/2 = 1 (a4= 0) 1/2 = 0 (a5= 1) 所以:N=45D=101101B (2)N=117D 十进制转换为十六进制数(除以16取余法) 117/16 = 7 (a0= 5) 7/16 = 0 (a1= 7) 所以 :N=117D=75H (3)将二进制数1011100转换为十进制数(各位二进制数码乘以与其对应的权之和) 1011100B = 1×2^6 + 0×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 0×2^1 + 0×2^0 = 92D (4

我理解的代码

拟墨画扇 提交于 2019-12-04 23:22:10
C、C++、Java、javascript、数据库语言 我想从上面五个具有代表性的语言,来整理我对代码的理解:   在起初,没有编程语言,计算机刚发明的时候,计算机只认识二进制,即0和1 ,而且只能完成数学运算,因为二进制 十进制本质上是数字的不同表达方式,虽然仅仅只能完成数学运算,但是我们可以编写一道方程让计算机求解,而且计算机可以完成复杂的方程求解,我们甚至可以编写分支运算,所以在计算机发明之后,很快 在政府 科研 宇宙探索三个方面施展拳脚,因为这三个领域 都需要复杂的数据统计和运算。后来IBM推出了商业电脑,即大型机 主打银行 公司和学校,因为其价格相对低廉,同时大型机支持客户编写程序然后在上面运算,但是IBM不可能让所有人使用二进制编写程序,所以汇编语言出现了,汇编语言是在二进制上面的再次封装,通过友好的语义化命令,使得客户可以轻松编写程序,同时 计算机会将汇编语言转为二进制来执行,再到后来,新的问题出现了,因为IBM每个大型机都是单独定制的系统,每次需要更换电脑的时候,意味着原来的程序需要新写一遍,客户非常抱怨,于是IBM推出了IBM360,这是一个全新的领域,IBM首次提出了操作系统,即把计算机硬件与软件分离,每次客户需要更换电脑的时候,不需要再重新编写程序,因为每个大型机上面的操作系统都是一个系统,而IBM这套系统是使用汇编语言编写的,汇编语言在编写小型程序非常有效