微机原理
8086微机原理与接口技术
Wayne_Fine
So why do we fall..?
展开
-
DOS汇编练习(12)——总结~
实验考试题目抽到10个无符号数排序(欧,欧!欧!!),我:哈哈哈哈哈哈哈哈,1分钟结束战斗!然而10分钟过去了,旁边两人交卷已走,老师:你好了吗?我:我这个还有点问题…(woc心态崩了呀…)怎么虚拟机弹窗内存错误!??到底咋回事啊,debug -p快执行100遍了,-t要执行1000遍了怎么还是不行,-g直接没了是啥玩意啊!!!?edit 调出来重写了两个asm文档;不行这个机子用edit有点慢,调出记事本重写了两个文档…心态崩了啊不停地敲键盘…这里用选择排序回忆一遍当时写的原创 2020-12-27 17:57:41 · 1291 阅读 · 6 评论 -
安装Ubuntu系统,将U盘当作启动盘后写保护怎么恢复?
U盘写保护怎么办?原创 2023-09-03 09:56:32 · 863 阅读 · 0 评论 -
DOS汇编练习(13)——求两数差的绝对值
DATA SEGMENT DATA1 DB 02H DATA2 DB 98H DATA3 DB 2 (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,[DATA1] MOV BL,[DATA2] LEA SI,DATA3 SUB AL,BL JC CHA原创 2021-01-10 20:31:56 · 1679 阅读 · 0 评论 -
DOS汇编练习(11)——BCD码的输入及转换
BCD码就是用16进制来表示10进制的数,如压缩BCD码98H,我们认为他代表的是十进制中的98。非压缩BCD码即1个字节存一个位数据,十进制98的非压缩BCD码为0908H。例1:编写完整程序,从键盘上接受4位压缩BCD码,并将其放在BX中。CODE SEGMENT ASSUME CS:CODESTART: MOV CX,4INPUT: MOV AH,01H ;按键输入,实际输入的是ASCII码 INT 21H CMP AL,'0' JAE NEXT ;判断是否原创 2020-12-27 12:14:08 · 5102 阅读 · 0 评论 -
DOS汇编练习(10)
例:编写完整的汇编语言程序,实现:以十六进制的形式显示BX(8A18H)寄存器的内容。CODE SEGMENTASSUME CS:CODESTART: MOV BX,8A18H MOV CH,4 ;用于控制显示的位数 MOV CL,4 ;用于控制循环移位个数PROG: ROL BX,CL ;循环左移4位 MOV AL,BL ;取出最高位的8放入AL AND AL,0FH ;屏蔽高四位 ADD AL,30H ;得ASCII码 CMP AL,39H ;与'9'相原创 2020-12-24 16:58:30 · 484 阅读 · 0 评论 -
DOS汇编练习(9)——判断16位数据奇偶性
例:统计AX(9898H)中1的个数,若个数为偶数,则BL=1H,若个数为奇数则BL=0H。1.统计个数:ASSUME CS:CODE CODE SEGMENT START: MOV AX,9898H MOV CX,16PROG: ROL AX,1 ;每次左移1位 TEST AX,1B ;最低位与1相与 JNZ NEXT ;若为1则计数+1 JMP REGONEXT: INC BHREGO: LOOP PROG原创 2020-12-24 14:29:08 · 2691 阅读 · 0 评论 -
DOS汇编练习(8)——选择排序
选择排序原理:每一趟先找出最小值,直至找到正确顺序。注意不要和冒泡的原理混淆,传送门:dos汇编练习(2)——冒泡法排序完整版DATA SEGMENT VAR DB 12H,43H,34H,2H,200,3FH,3EH,1,120,5EH VARLEN EQU $-VARDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,VARLEN DEC CX MOV BX,OF原创 2020-12-21 20:06:31 · 526 阅读 · 0 评论 -
DOS汇编练习(7)——无符号数排序及有符号数排序
三个数排序,可用三个变量之间相互比较,按大小要求排序。C语言伪代码: if(a>b) /*如果a大于b,借助中间变量t实现a与b值的互换*/ { t = a; a = b; b = t; } if(a>c) /*如果a大于c,借助中间变景t实现a与c值的互换*/ { t = a; a = c; c = t; } if(b>c)原创 2020-12-21 13:58:04 · 2880 阅读 · 0 评论 -
DOS汇编练习(6)——中断向量(DEBUG调试实例超详细~)
中断向量为:编程将中断向量类型21H所对应的中断向量从中断向量表中取出来分别放在 SI 和 BP中。(直接用 MOV 指令即可)CODE SEGMENT ASSUME CS:CODESTART: XOR AX,AX ;AX清空 MOV DS,AX ;DS不可直接 MOV立即数,通常需要借助AX寄存器 MOV BX,21H MOV CL,2 SHL MOV AH,4CH INT 21HCODE ENDS...原创 2020-12-16 11:58:07 · 3443 阅读 · 0 评论 -
Dos汇编练习(5)——debug指令篇
T、P、G命令的不同之处:1.T命令作用:执行汇编程序,单步跟踪。2.P命令作用:执行汇编程序,单步跟踪。与T命令不同的是:P命令不会跟踪进入子程序或软中断。P命令的使用方式与T命令的使用方式完全相同。3.G命令作用:执行汇编指令;常用作设置断点调试用。G命令的使用方法是:G [=起始地址] [断点地址],意思是从起始地址开始执行到断点地址。如果不设置断点,则程序一直运行到中止指令才停止。...原创 2020-12-12 20:08:13 · 1896 阅读 · 0 评论 -
DOS汇编练习(4)——02h,09h显示功能&Hello World!
注意事项:masm有一个不成文的规定,那就是在定义完数据段后,所定义的变量均向后100h个单元,需要我们将ds段寄存器置位,在程序的start:后面加上如下指令:mov ax,datamov ds,ax本程序主要是调用int 21h的显示功能,可以用02h单个字符循环显示,也可以用09h显示字符串。1.02h显示:DATA SEGMENT STR DB 'H', 'e', 'l', 'l', 'o', ',', 'L', 'C', ' ', 'U', 'n', 'i', 'v', 'e', '原创 2020-12-10 17:21:32 · 6135 阅读 · 1 评论 -
DOS汇编练习(3)——找出最大数存入指定单元&debug单步执行调试
在DATA之下存放5个无符号的8位数,找出其最大者并存放在KVFF单元。运行环境:VMWARE 15.5 PROWindows XPDosBoxMasm.exeDebug.exe实验程序:DATA SEGMENT BUFFER DB 01H,10H,22H,03H,05H ;定义5个数据 KVFF DB 30h ;指定地址单元DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX XO原创 2020-12-06 23:11:42 · 909 阅读 · 0 评论 -
dos汇编练习(2)——冒泡法排序完整版
8086的汇编和51单片机的汇编差距还是有点的,最明显的区别就是更难。经典冒泡法排序的算法思想还是一致贯通的,可参考51单片机汇编_冒泡法排序huiche macro ;回车宏 mov ah,02h ;02h对应回车ASCII码 mov dl,0ah int 21h mov dl,0dh ;是将DL中的ASCII码显示到屏幕 int 21h endmdata segment var db 51h,63h,45h,84h,03h varlen = $ - var str1 db "原创 2020-11-30 23:20:05 · 1219 阅读 · 0 评论 -
dos汇编练习(1):键盘输入十六进制,并显示二进制结果
第一次练习,先再熟悉一遍8086汇编时的代码通用框架:data segment ;定义数据段,名称随意 ;放数据data ends ;结束句必须要有code segment ;定义代码段,名称随意 code ends在程序最后assume cs:code,ds:data ;声明代码段,数据段Start: ;定义开头标号,名称随意 MOV AX,DATA ;接下来的这两句必须要有 MOV DS,AX ;把data(数据) 转到 DS 数据段寄存器,让数据段指向正确的位置。 ;接原创 2020-11-26 16:22:35 · 3058 阅读 · 1 评论 -
计算机的32位,64位是什么意思;如何计算寻址能力;逻辑地址与物理地址的关系?
通常所说的32位,64位操作系统指的就是计算机内部一次性处理数据的位数,位数越高,CPU处理数据能力越强。以8位寄存器为例:我们知道,1Byte(字节) = 1Bit(比特)1KB = 1024B = 2102^{10}210B1MB = 1024KB = 2202^{20}220B所以1个字节的某一状态可由8位数(二进制,只能是0或1)组成:如0 0 0 0 | 0 0 0 1 这8位数就代表1字节的一种状态,8位二进制数总共能组合出282^828种状态,即282^828B;同样的,16原创 2020-10-13 11:11:03 · 10719 阅读 · 2 评论