汇编程序
微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。要求考生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法
qxlxi
21届本,后端工程师 (专注于Java、Go、数据库、缓存、消息队列、网络、OS、算法、软件设计、DevOps、云原生、大数据、分布式系统架构设计等)
展开
-
【微机原理】存储器的扩展技术
1.存储器容量的扩展总片数=总容量/(容量/片)例:存储器容量为8K×8b,若选用2114芯片(1K×4b),则需要的芯片数为:(8K×8b)/(1K×4b)=16(片)(1)位扩展只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的。即b前面不一样,K前面保持一样。例:用64K×1b的SRAM芯片组成64K×8b的存储器,所需芯片数为:(64K×8b)/(64K×...转载 2018-12-16 17:20:39 · 4553 阅读 · 1 评论 -
【微机原理】数字电路器件—门 与门 或门 非门电路及实例
门电路是数字电路中最基本的逻辑单元。它可以使输出信号与输入信号之间产生一定的逻辑关系。在数字电路中,信号大都是用电位(电平)高低两种状态表示,利用门电路的逻辑关系可以实现对信号的转换。最基本的门电路有与门电路,或门电路,非门电路等。与门电路与门电路是指只有在一件事情的所有条件都具备时,事情才会发生。与门电路的基本结构和逻辑符号见下图在与门电路功能示意图中,只有在开...转载 2018-12-07 22:40:02 · 12831 阅读 · 1 评论 -
【微机原理-汇编语言】汇编语言的产生
1、汇编语言的产生2、汇编语言的组成 汇编语言由以下3类组成: 1、汇编指令(机器码的助记符) 2、伪指令(由编译器执行) 3、其他符号(由编译器识别) 汇编语言的核心是汇编指令,它决定了汇编语言的特性。 存储器 cpu是计算机的核心部件,他控制整个计算机的运作并运行计算,要想让一个cpu互做。就必须向它提供指令和数据。...原创 2018-09-06 10:47:20 · 1425 阅读 · 0 评论 -
【微机原理及应用】程序的分类
用来解决用户各种实际问题的程序称为应用程序。应用程序标准化、模块化后。形成解决各种典型问题的应用程序的组合,称为软件包。语言翻译程序如 汇编程序、编译程序、解释程序。...原创 2018-09-05 08:00:00 · 910 阅读 · 0 评论 -
【汇编程序】最全80x86指令详解
声明:博主原创,禁止转载。邮箱:qxlxi@qq.com8086指令系统传送寻址方式寻址特点: 计算机的指令通常包含操作码和操作数部分。立即寻址方式Mov al,32立即数只能作源操作数,不能作目的操作数。(遇到A-F开头的数字出现在指令中时,要加上一个数字0 Mov AX,0FF00H)寄存器寻址方式在寄存器寻址方式下,操作数包含在寄存器中,对于1...原创 2018-12-05 23:49:22 · 5999 阅读 · 2 评论 -
【汇编语言】emu汇编软件破解注册码
注册 UserName:www.weste.netRegKey:27R3-1I2UJHRJSF3C3FRTQZXJ原创 2018-12-04 23:06:00 · 2923 阅读 · 3 评论 -
【汇编程序】dosbox+masm汇编程序安装
一、dosbox+masm环境的配置1. 下载dosbox安装程序:DOSBox0.74-win32-installer.exe链接:https://pan.baidu.com/s/1gXPKTT-xKb6BpjOJdhmudA 密码:khqs2. 安装。注意它是32位的。我装在了C盘program files(X86)。3. 下载masm文件。链接:https://pan.ba...转载 2018-12-04 21:59:24 · 2376 阅读 · 0 评论 -
【微机汇编】dosbox中debug的标志位
debug中的标志位显示顺序OF DF IF SF ZF AF PF CFOF 标志位(溢出)OF = 1, 显示为OVOF = 0, 显示为NV影响OF的指令举例, INCDF 标志位(方向)DF = 0, 显示为UPDF = 1, 显示为DN影响DF的指令举例, CLD, STDIF 标志位(中断)IF = 0,显示为DIIF = 1, 显示为E...转载 2018-11-17 15:09:17 · 4342 阅读 · 0 评论 -
【汇编程序】给定的个数的数据中寻找最大值,放到max存储单元中—循环结构
程序需求:在给定的个数的数据中寻找最大值,放到max存储单元中编程思路:首先定义一个数据段 用buf来存放一串数据 count变量用来获取到多少个数据,($-buf)/2 获取数据的个数定义一个堆栈段 先占用100个存储空间,length获取到空间的大小。程序段对段地址和偏移地址进行声明,因为循环我们使用的是cx的值来判断 循环的次数,因此 用获取到数据的个数 赋值给cx值,然后先...原创 2018-12-19 21:33:12 · 10917 阅读 · 2 评论 -
【汇编程序】循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放
;循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放;低字节在前 高字节在后 要求结果以同样形式存放以SUM的单元中data segment a db 44h,33h,22h,11h ;数A BCD数 加上后缀H b db 88h,77h,66h,55h ;数B 格式同上 sum db 5 dup(?) ;存和(包含...原创 2018-12-21 21:41:44 · 5046 阅读 · 0 评论 -
【汇编程序】出地址为BUF的5个字符数组的内容之和
程序需求:编写程序求出地址为BUF的5个字符数组的内容之和,并把和存入SUM字单元程序分析:首先定义一个数据段,定义两个变量,一个BUF用来存储数据,一个SUM用来将计算后的结果保存起来代码段中将段地址以及偏移地址获取到OFFSET 设置循环的次数,CX 因为定义的是一个字单元,所以每次地址值应该加上2 循环5次 将结果送到SUM中,int 21H将程序控制权返回给DOS系统。;...原创 2018-12-26 21:54:27 · 1311 阅读 · 0 评论 -
【汇编程序】编程将两数相加 结果存入sum单元中。
程序需求:在存储单元中A1和A2中 各存有一个2字节无符号数 低字节在前 高字节在后,编程将两数相加,结果存入sum单元中,也要求低字节在前 高字节在后,进位存入最后一个字节单元编程思路:首先定义一个数据段,一个变量A1和变量A2 DB 一字节空间 ,在程序进行时 将程序的CF 进位标志位清零。然后CLC 使用BX 来做寄存器基址变址寻址,依次将 A1和A2中的 低字节和高字节中的无符号数...原创 2018-12-18 22:05:12 · 14600 阅读 · 1 评论 -
【汇编程序】要求统计数字0-9 字符A-Z和其他的个数,存储到NUM开始的3个内存单元中
需求:在存储器中以首地址BUF开始存有一串字符,字符串个数用count表示。要求统计数字0-9 字符A-Z和其他的个数,并分别将他们的个数存储到NUM开始的3个内存单元中。编程思路:我们知道数字0-9对应的ascll为30h-39h 大写字母 41h-5ah 数据段中定义 buf存储一串字符,count判断出自总字符的个数。num 定义3个重复的字节空间,分别用来存放数字 字母 其他字...原创 2018-12-18 22:50:12 · 3626 阅读 · 0 评论 -
【汇编程序】统计字符'A'在字符串中出现的次数
;str是一个以'$'为结束的字符串,如下程序统计字符'A'在字符串中出现的次数,并将统计的结果;送到count单元,用汇编语言完成此程序的设计data segment ; //data segment 定义一个数据段 str DB 'AAAACAHjsjisjaidsajis','$';定义str串 在汇编中终止符是'$' c语言中是'\0' 因此定义'$'...原创 2018-12-05 23:26:02 · 9108 阅读 · 1 评论 -
【汇编程序】在buf1和buf2开始处各有一个不同的16位有符号数 将较大的数放入ax 小的数放入bx
;程序需求:在buf1和buf2开始处各有一个不同的16位有符号数 将较大的数放入ax 小的数放入bxdseg segment;定义数据段 dseg 是自定义段名 segment是定义段的关键字----segment 段定义语句 buf1 dw 8765h ;//DW定义两个字节的空间 buf2 dw 5678hdseg ends ;dseg是自定义段名称 en...原创 2018-12-05 23:00:45 · 2772 阅读 · 0 评论 -
【汇编程序】编写一个完整的程序 将这3个数的最大者存放到MAX单元
;首地址为DAT的数据区中有3个互补相等的8位无符号数据 编写一个完整的程序 将这3个数的最大者存放到MAX单元DATA segment dat DB 6,7,8 max DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MO...原创 2018-12-07 21:17:42 · 3425 阅读 · 0 评论 -
【汇编程序】BUF为首址的100个字节单元用原码表示的有符号数依次编程用补码表示的有符号数
对有符号数据进行取补码的的时候,我们可以先将最高位清零 使用and ax,7f然后 在使用neg 指令对ax 中的数据进行取反加1 就可以获取到。;将内存中以BUF为首址的100个字节单元用原码表示的有符号数依次编程用补码表示的有符号数;依次放在原100个字节单元中 data segment buf db 200 dup(?) ;定义200个一字节的空间 用...原创 2018-12-07 21:50:44 · 3044 阅读 · 0 评论 -
【汇编程序】统计非数字的个数
需求:从键盘上输入一系列字符,以空车符结束,编程统计其中非数字字符的个数实现思路:首先需要先定义一个数据段 用于存放键盘输入的字符,其次在定义一个count变量用来统计程序中非数字字符的个数,通过去判断每一个偏移量上对应的字符是否是回车符,如果是回车符就执行到exit,否则判断是否是高于30h,这里的30h 是一个16进制数,对应的十进制是48.如果高于0说明这个字符是一个数字,程序跳转到n...原创 2018-12-11 21:34:38 · 2813 阅读 · 3 评论 -
【汇编程序】从键盘输入一个大写字母,将其转换成小写字母
程序需求:从键盘上输入一个大写英文字母,将其转换成小写字母并显示出来,要求输入其他字符,能够有出错提示信息编程思路:首先需要先定义一个数据段,定义一个变量,在汇编中 定义字符串只能使用db 以$作为结束标志 将段地址和偏移地址都赋值,因为要进行键盘的输入 所以 程序需要调用dos系统 01H的作用是接收从键盘上输入的一个字符,并在屏幕上显示,将接收的到值和al 和 A和 Z 进行比...原创 2018-12-11 21:54:05 · 42537 阅读 · 0 评论 -
【汇编程序】编程将100到200中的奇数求和,结果送到SUM字单元
程序需求:编程将100到200中的奇数求和,结果送到SUM字单元编程思路:将100到200中的奇数求和,先定义一个数据段,SUM 字单元(这里程序定义为字单元,主要是总数超出一个字节单元的范围,所以定义一个字单元),定义一个堆栈段。将数据段段地址和初始值赋给ds,ax寄存器 然后每次先判断是否是超出了200范围,如果超出就将ax中结果赋值给SUM,不小于的话 继续执行下面的程序程序循环执行...原创 2018-12-12 21:23:27 · 6937 阅读 · 0 评论 -
【汇编程序】使用汇编程序,并按公式z=((x+y)*8-x)/4 计算z的值,并将结果送到result中
程序需求:使用汇编程序,并按公式z=((x+y)*8-x)/4 计算z的值,并将结果送到result中编程思路:首先先分析一下 两数相加可以 使用add 相乘可以用sub 乘以8 可以使用左移指令sal 移动3次 就是乘以了8 因为移位的次数超出了1位,所以 应先将移位的次数3 送进cl寄存器中,然后在将使用sal 对一个数/4 也可以使用右移指令sar 移位2次 就实现了对一个数进行/...原创 2018-12-12 21:45:36 · 8478 阅读 · 0 评论 -
【汇编程序】编写一个在显示器上显示的一个笑脸字符的程序
程序需求:编写一个在显示器上显示的一个笑脸字符的程序要使用dos系统功能号 显示单个字符 使用2号功能;顺序结构程序结构设计 ;顺序结构程序也称为简单程序,这种程序按指令排列的先后顺序逐条执行;需求 :编写一个在显示器上显示的一个笑脸字符的程序 prog1 segment assume cs:prog1 ;程序只有一个代码段 start:mov al,...原创 2018-12-14 21:09:40 · 3957 阅读 · 0 评论 -
【汇编程序】从键盘上输入一个10进制数字,查表求键入数字的平方值
需求:从键盘上输入一个10进制数字,查表求键入数字的平方值实现思路:定义数据段 一个提示信息,使用db字节来存储 并以'$'符号作为结束标志,定义一个变量存储 0-9对应的平方值先赋值代码段段地址和偏移量地址,调用dos9号功能 显示以$结束的标志字符串,提示用户输入.接着调用dos1号功能 接收用户输入的,并在屏幕上显示。这里用and(与) 进行相与之后获取了键盘上输入的值,将存储...原创 2018-12-14 21:47:14 · 8909 阅读 · 1 评论