汇编学习(九)8086汇编拾遗 (8)

汇编8086复习——基础知识、指令汇总、上机实验踩坑 Chapter II 80x86微处理器有8086、8088、80286等型号,我们要学习的就是8086微处理器的汇编指令系统,主要记住下表内容 型号 字长(位) 数据总线宽度(位) 地址总线宽度(位) 寻址空间 8086 16 16 20 1M 字长:计算机同一时间处理二进制数的位数叫字长 寻址空间:可理解成地址范围1M=220,计算机内部存储空间都会编上号,就像每个户人家都有一个门牌号一样,总共有1M户人家,依次被编号0~ 220-1, 由于地址总线的宽度是20位,而数据总线宽度只有 阅读详情
端口:

从CPU的角度,简单来看,CPU将这些硬件设备进行了统一的编址。一些硬件被编进的地址就变成了对CPU 读取地址的接口。

端口的读写指令只有2条:

in: 从端口读入数据

out:从端口读出数据

注意这里只能使用AX 或 AL 来存放从端口读入的或从端口读出的数据。
assume cs:code code segment start: mov al,2 out 70h,al in al,71h mov al,2 out 70h,al mov al,0 out 71h,al mov ax,4c00h int 21h code ends end start

shr 和 shl 指令 逻辑左移,逻辑右移。 使用加法和位移指令计算 ax = ax*10

assume cs:code

code segment

    start:
        mov ax,2
        shl ax,1
        mov bx,ax
        shl ax,1
        shl ax,1
        add ax,bx

        mov ax,4c00h
        int 21h

code ends

end start

显示当前的日期:

assume cs:code

data segment

    time db 'yy/mm/dd hh:mm:ss$'
    table db 9,8,7,4,2,0

data ends

code segment

    start:
        mov ax,data
        mov ds,ax
        mov si,offset table
        mov di,offset time

        mov cx,6

     s: 
        push cx
        mov al,ds:[si]
        out 70h,al
        in  al,71h

        mov ah,al
        mov cl,4
        shr ah,cl

        add al,00001111b

        add ah,30h
        add al,30h

        mov ds:[di],ah
        mov ds:[di+1],al

        inc si
        add di,3

        pop cx
        loop s

        mov ah,0
        mov bh,0
        mov dh,10
        mov dl,40
        int 10h

        mov dx,offset time
        mov ah,9
        int 21h

        mov ax,4c00h
        int 21h

code ends
end start

 

 

【小白图文详解】使用VScode进行8086汇编学习,目前最好的8086汇编学习环境搭建 1 前言 ​ 这学期要学习8086汇编,选择汇编的环境折腾了好几天,尝试过使用吾爱破解的OD反汇编工具【1】查看寄存器的状态,并进行的简单的汇编指令编写,但其界面复杂,对新手极其不友好,使用了几天就放弃了。于是我又尝试了比较正规(主要是汇编书籍里边他就是要你这么搭建编程环境)的8086汇编环境——DOSBox虚拟环境【2】,但但但是!!在这里我不得不说,这样的环境虽然比较正规(后面会介绍代替方案),如果你折腾过这个编程环境你会知道,代码没高亮是其次的问题,麻烦的是你编写了一个自己不知... 阅读详情

相关推荐

8086汇编学习教程

8086汇编学习教程 推荐大家学习,我感觉很不错

8086 及其汇编

1 基础知识 1.1 汇编语言的组成 机器码:一串二进制数,由 CPU 执行 汇编指令:由对应机器码的指令,要通过编译器编译为机器码才能够运行 伪指令:对汇编过程进行控制的指令,不能被运行,需要翻译成汇编指令 1.2 指令和数据 在内存或磁盘上,指令和数据没有区别,都是一串二进制数据 CPU 工作时,将有的信息看作指令,有的看做数据 1.3 CPU 对存储器的读写 存储器被划分成多个单元,存储单元从 0 开始编号,即地址 CPU 要想进行数据读写就必须进行 3 类信息交互 存储单元的地址(地址信息) 是读

不搞数学的汤老师 8892

单细胞分析实战:用R语言绘制带连线的堆叠柱状图(附完整代码)

本文详细介绍了如何使用R语言绘制带连线的堆叠柱状图进行单细胞转录组数据分析,特别适用于展示细胞比例变化趋势。通过完整代码示例和实战技巧,帮助研究者优化多组别比较的可视化效果,提升科研图表质量。

yhn4567890的博客 390

【8086汇编】汇编语言基础入门

汇编实际是机器语言的助记符,通过某种规则,给机器码起不同的有意义的名字,与机器指令一一对应。中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元(CPU:计算机的"大脑")。CPU由控制器、运算器和寄存器组成。 每一种CPU都有自己的汇编指令集。

2301_76435948的博客 2944

RPA 财务共享中心与RPA赋能

在和集团财务官交流的时候,客户经常会提到FSSC,其中有准备建立FSSC,正在建立FSSC,以及已建成FSSC正使用的,当中会有些对FSSC的疑虑和问题,所以花费些时间对FSSC进行了深入调研,从而也有幸拜读了王兴山、陈剑、梅震、钱自严等专业人士写的几本关于FSSC的书,对FSSC的前因后果有了更深入的认识,同时结合自己在FSSC的一些项目经验,故做了本次分享。 本文章主要分享财务共享中心以及R...

weixin_40244959的博客 2757

构建面向嵌入式Linux的ARM64交叉编译工具链:从sysroot配置到CMake实战

本文详细介绍了如何构建面向嵌入式Linux的ARM64交叉编译工具链,从sysroot配置到CMake实战。通过分步指导,帮助开发者解决架构不一致问题,提升编译效率,特别适用于树莓派等ARM64设备开发。文章涵盖sysroot机制、环境搭建、CMake配置及常见问题解决方案,是嵌入式开发的实用指南。

weixin_42537142的博客 200

8086汇编学习之寻址方式、数据类型以及几个数据操作指令

(一)、8086汇编学习之基础知识、通用寄存器、CS/IP寄存器与Debug的使用 (二)、8086汇编学习之DS寄存器、SS/SP寄存器 (三)、8086汇编学习之[BX],CX寄存器与loop指令,ES寄存器等 (四)、 8086汇编学习之代码段、数据段、栈段与段地址寄存器 一、and、or指令与应用:1、描述: and指令:按位与 or指令:按位或 and regis

Apollon_krj的博客 3640

机器视觉最全面试题总结

空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样a. 是普通的卷积过程(dilation rate = 1),卷积后的感受野为3b. 是dilation rate = 2的空洞卷积,卷积后的感受野为5。

@bangbang的博客 9212

汇编语言之8086常用指令(看这一篇就够了)

8086指令系统格式可以分为下列三种形式双操作数形式:OPR OPD,OPS单操作数形式:OPR OPD无操作数形式:OPR。

rc1596919047的博客 6234

第15章 AI 产品原型设计 —— 让 AI 成为你的产品经理

理解产品需求- 将模糊的想法转化为具体的原型方案生成高质量原型- 输出符合设计规范的 HTML 原型提供设计建议- 基于 UX 最佳实践给出优化建议维护原型文档- 自动更新原型说明和变更记录。

快乐的修补匠的专栏 506

Python爬虫实战:基于异步爬虫与机器学习的数据采集——以电商平台在线评论有用性分析为例

内容涵盖爬虫原理、反爬虫策略应对、数据清洗、数据存储以及简单的数据分析预览,并为后续利用机器学习模型(如逻辑回归、随机森林)分析评论有用性打下坚实的数据基础。特别是在电子商务领域,在线评论作为UGC的一种主要形式,深刻影响着消费者的购买决策和商家的信誉体系。然而,平台上的评论质量参差不齐,充斥着大量无意义的灌水、广告甚至虚假评论。因此,如何自动识别和筛选出“有用”的评论,成为了学术界和工业界共同关注的焦点。我们选择目前Python爬虫领域最前沿、效率最高的技术组合,以确保爬虫的稳定性、速度和可扩展性。

2201_76125261的博客 107

8086汇编语言教程(入门到实践)

8086汇编语言是经典的低级语言之一,用于编程8086系列处理器。它以其简洁的指令集、灵活的内存操作和硬件控制能力成为学习汇编语言和计算机底层知识的理想起点。本文将带你从基础入门,逐步掌握8086汇编语言的核心概念和简单编程技巧。

Du_XiaoNan的博客 2845

零差云控 ZeroErr eRob 电机 CAN、CANopen、EtherCAT、ROS2 机器人开发详细教程

TwinCAT 3(Windows 控制与自动化技术)是 Beckhoff 提供的开发平台,可将任何兼容 PC 转变为实时控制系统,用于管理各种类型的工业自动化系统,如 PLC(可编程逻辑控制器)、运动控制、机器人等。

机器人控制与仿真应用 1万+

汇编学习(一)8086汇编拾遗(1)

前言 汇编学习这个系列是我一直想要开启的一个学习模块,但是因为种种原因一直没有开始做这件事,正好我们开始准备做操作系统,我们必须出发了,之前的一些事情只能让它飞向天边了。 基础概念 指令和数据,在内存和硬盘上,指令和数据没有什么区别,即使是汇编指令也是以二进制的存在于内存之中的。 cpu 对存储器的读写必须有以下的几点信息: @存储单元的地址信息 @器件的选择,读或者写的指

密码小仙女 520

Android SurfaceFlinger——概述(一)

对于系统渲染流程的理解是指导 SurfaceFlinger 设计的核心思想,从 Android 4.1 一直到 Android 9.0 都没有太大的变化。只要抓住这五个核心思想,我们阅读 SurfaceFlinger 的难度就会下降不少。下面看一下 SurfaceFlinger 的体系和 Skia 以及 View的绘制流程的关系。framework 面向开发者所有的 View 是便于开发的控件,里面仅仅只是提供了当前 View 各种属性以及功能。

小旭的专栏 2584

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

汇编学习(十三)8086汇编拾遗 (12)

王爽的《汇编语言》虽然结束了,但是我们的思考还要继续,结下来就要进入X86汇编语言的学习了,但是思考还要继续。 指令拾遗,其实指令还有太多,这里只能写一些有限的: xchg: 交换指令,寄存器和内存变量之间的内容的交换指令,两个交换的数据类型要相同。 需要注意的4个地方: 1.不能同时为内存操作数 2.任何一个操作数不能为段寄存器 3.任何一个操作数不能为立即数 4.两个操作数...

密码小仙女 489

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

汇编学习(五)8086汇编拾遗 (4)

汇编模块化成程序语言设计 使用寄存器来存储参数和结果是最常用使用的方法。对于存放参数的寄存器和存放结果的寄存器,调用者和子程序的读写操作恰恰相反,调用者将参数送入寄存器,从结果寄存器中取到返回值;子程序从参数寄存器中取到参数,将返回值送入结果寄存器中。 上边这段话,看起来像是很冗余,但是却贯穿汇编语言始终8086,X86都是如此。 一个转换大小写的程序 assume cs:code ...

密码小仙女 341

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汇编学习(四)8086汇编拾遗 (3)

jcxz 指令:条件指令,所有的转移都是短转移,IP 的修改范围是-128~127 之间。 eg. 查找内存2000H段中的一个值为0的字节,然后将它的偏移地址存储在dx 中。 assume cs:code code segment start: mov ax,2000H mov ds,ax mov bx,0 S:mov ch,0 mov cl,ds:[bx] jcxz OK inc ...

密码小仙女 490

汇编学习(六)8086汇编拾遗 (5)

8086 标志寄存器 8086 的最后一个比较重要的寄存器 标志寄存器 状态寄存器的三种作用: @用来存储相关指令的某些执行结果 @用来为CPU执行相关指令提供行为依据 @用来控制CPU的相关工作方式 ZF标志: 记录相关指令执行后,其结果是否为0,结果为0,zf = 1,不为0 ,zf = 0. PF标志: 奇偶效验寄存器,记录相关指令执行后,其中所有位中1 的个数是否为偶数...

密码小仙女 524

汇编学习(一)8086汇编拾遗(2)

寻址方式 立即寻址 mov ax,3069H 寄存器寻址 mov al,BH 直接寻址 mov ax,[2000H] 寄存器间接寻址 mov ax,[bx] 寄存器相对寻址 mov ax,cont[si] 基址变址寻址 mov ax,[bp][di] 相对基址变址寻址 mov ax,mask[bx...

密码小仙女 395

[汇编学习]8086汇编入门笔记

1)认识段定义伪指令是用来 定义程序中各个段(segment) 的范围和名字的。**代码段(Code Segment):**放指令**数据段(Data Segment):**放数据**堆栈段(Stack Segment):**放栈**附加段(Extra Segment):**放附加数据2)相关伪指令伪指令作用SEGMENT段开始定义ENDS段结束ASSUME假定段寄存器对应哪个段END程序结束(告诉汇编器汇编到此为止)a.SEGMENT开始定义一个段。

m0_66714671的博客 897

8086汇编语言入门-HelloWorld

附件下载:    http://pan.baidu.com/s/1i5R9qO9 密码:rfgk   80x86微处理器汇编语言编程。学习任何编程语言都免不了要跨越HelloWorld这道坎,面向机器的汇编语言与面向过程/对象的高级语言不同,编码过程中对寄存器、内存的分配等细节都需要编程人员去关心;而高级语言程序如C语言、C++,即使你不知道printf具体是怎么实现的,只要掌握使用方法即可(封装成模块)。C语言的helloworld程序简单到只有一行执行语句:      printf("...

eli的博客 4498

图解在8086模拟器中运行汇编helloworld程序

汇编helloworld代码: org 100h ; set video mode mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3) int 10h ; do it! ; cancel blinking and enable all 16 colors: mov ax, 1003h mov b

bcbobo21cn的专栏 8022

8086汇编学习之DS寄存器、SS/SP寄存器

相关博客:8086汇编基础知识、通用寄存器、CS/IP寄存器与Debug的使用 一、DS寄存器一个8086CPU寄存器均是16位的,而数据类型有以下两种: 1Byte = 8bit (字节型数据) 1word = 2Byte = 16bit (字型数据)16位寄存器存储一个字,而在内存中需要两个空间连续的字节存储一个字。(高位地址存放高位数据,低地址存放低位数据)。 任何两个地址连续的内存单元

Apollon_krj的博客 1万+

8086汇编学习

8086汇编学习资料:《汇编语言》——王爽debug相关Debug 是DOS,Windows 都提供的实模式(8086方式)程序的调试工具,使用他可以查看CPU各种寄存器中的内容,内存的情况和在机器码级跟踪程序的运行。 win10 win7已经不支持debug模式了,要想体验debug模式可通过虚拟机跑xp来完成 主要的Debug功能: R命令:查看、改变CPU寄存器的内容; D命令:查看内存

github_38838414的博客 1705

X86与X64 汇编学习——调用汇编函数

本节说明函数调用相关: 函数调用必须被保留的内容: EAX 用于保存输出值,可能在返回前被修改 EBX 指出全局偏移表,必须保留 ECX 保证在函数中可用 EDX 保证在函数中可用 ESP 指向心得堆栈地址,必须保留 EBP 堆栈基址指针,必须保留 EDI ...

密码小仙女 1492
上一篇: 汇编学习(八)8086汇编拾遗 (7)
下一篇: 汇编学习(十)8086汇编拾遗 (9)
zmrlinux
博客等级 码龄12年 409粉丝 327原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值