锦州哪家做网站滨城网站开发

bicheng/2026/1/23 8:01:51/文章来源:
锦州哪家做网站,滨城网站开发,wordpress 网站加密插件,网站统计ip pv《汇编语言》- 读书笔记 - 第13章-int 指令 13.1 int 指令13.2 编写供应用程序调用的中断例程中断例程#xff1a;求一 word 型数据的平方主程序中断处理程序执行效果 中断例程#xff1a;将一个全是字母#xff0c;以0结尾的字符串#xff0c;转化为大写主程序中断处理程序… 《汇编语言》- 读书笔记 - 第13章-int 指令 13.1 int 指令13.2 编写供应用程序调用的中断例程中断例程求一 word 型数据的平方主程序中断处理程序执行效果 中断例程将一个全是字母以0结尾的字符串转化为大写主程序中断处理程序执行效果 13.3 对 int、iret 和栈的深入理解主程序中断处理程序分析执行效果 检测点 13.113.4 BIOS 和 DOS 所提供的中断例程13.5 BIOS 和 DOS 中断例程的安装过程BIOS中断例程的安装DOS中断例程的安装 13.6 BIOS 中断例程应用功能 02H 设置光标位置功能 09H 在光标位置显示字符 13.7 DOS 中断例程应用INT 21H功能 4CH返回码方式的终止进程功能 09H输出一个字符串到标准输出设备上 实验 13 编写、应用中断例程参考资料 13.1 int 指令 int n 指令的功能是引发 n 号中断过程从而执行 n号中断处理程序。 系统将一些具有一定功能的子程序以中断处理程序的方式提供给应用程序调用。 我们在编程的时候可以用 int 指令调用这些子程序。 当然也可以自己编写些中断处理程序供别人使用。 以后我们可以将中断处理程序简称为中断例程。 13.2 编写供应用程序调用的中断例程 中断例程求一 word 型数据的平方 问题一编写、安装中断 7ch 的中断例程。功能求一 word 型数据的平方。参数(ax)要计算的数据。返回dx、ax 中存放结果的高 16 位和低 16 位。应用举例求 2*3456^2 16C8000h 23,887,872 主程序 assume cs:code code segmentstart: mov ax,3456 ; (ax)3456int 7ch ; 调用中断 7ch 的中断例程计算ax中的数据的平方; dx:ax 存放结果将结果乘以2add ax,ax ; 先加低位adc dx,dx ; 再加高位这里用了进位加法; 23887872mov ax,4c00hint 21h code ends end start中断处理程序 assume cs:code code segmentstart: ; 安装 ; ------------------- 复制数据 -------------------mov ax,csmov ds,axmov si,offset sqr ;设置 ds:si 指向源地址mov ax,0mov es,axmov di,200h ;设置 es:di 指向目的地址mov cx,offset sqrend-offset sqr ;设置 cx为传输长度cld ;设置传输方向为正。movsb中si,di递增rep movsb ;重复复制数据次数由 cx 控制; ------------------- 复制数据 -------------------; ----------------- 设置中断向量 -----------------mov ax,0mov es,ax ; 段地址 0mov word ptr es:[7ch*4],200h ; 设置【中断处理程序】的偏移地址mov word ptr es:[7ch*42],0 ; 设置【中断处理程序】的段地址; ----------------- 设置中断向量 -----------------; 安装 mov ax, 4c00H ; 退出int 21H; ; --------------------- 中断处理程序 -------------------- ; ax 的平方 ; ------------------------------------------------------- ; 参数ax 要计算的数据。 ; 返回dx、ax 中存放结果的高 16 位和低 16 位。 ; -------------------------------------------------------sqr: mul ax ; ax * ax 结果 dx高16位ax低16位iret ; 返回原程序。 pop IP, pop CS, popfsqrend: nop ; --------------------- 中断处理程序 -------------------- ; code ends end start安装功能跟之前都是一样的只是改下值就行了。中断处理程序也很简单就是一个乘法就返回了。 执行效果 中断例程将一个全是字母以0结尾的字符串转化为大写 问题二编写、安装中断 7ch 的中断例程。功能将一个全是字母以0结尾的字符串转化为大写。参数ds:si指向字符串的首地址。应用举例将 data 段中的字符串转化为大写 主程序 assume cs:code data segmentdb conversation,0 data endscode segmentstart: mov ax,datamov ds,axmov si,0int 7ch mov ax,4c00hint 21h code ends end start中断处理程序 assume cs:code code segmentstart: ; 安装 ; ------------------- 复制数据 -------------------mov ax,csmov ds,axmov si,offset capital ;设置 ds:si 指向源地址mov ax,0mov es,axmov di,200h ;设置 es:di 指向目的地址mov cx,offset capitalend-offset capital ;设置 cx为传输长度cld ;设置传输方向为正。movsb中si,di递增rep movsb ;重复复制数据次数由 cx 控制; ---------------- 安装(复制数据) ----------------; ----------------- 设置中断向量 -----------------mov ax,0mov es,ax ; 段地址 0mov word ptr es:[7ch*4],200h ; 设置【中断处理程序】的偏移地址mov word ptr es:[7ch*42],0 ; 设置【中断处理程序】的段地址; ----------------- 设置中断向量 -----------------; 安装 mov ax, 4c00H ; 退出int 21H; ; --------------------- 中断处理程序 -------------------- ; 将一个全是字母以0结尾的字符串转化为大写。 ; ------------------------------------------------------- ; 参数ds:si 指向字符串的首地址。 ; -------------------------------------------------------capital: push cx ; 备份寄存器push sichange: mov cl,[si] ; 取字符mov ch,0 ; 高位不参与计算置 0 jcxz ok ; 如果取到 0 跳到 ok 循环结束and byte ptr [si],11011111b ; 否则字符转大写inc si ; si 指向下一字符jmp short change; 跳到开头继续循环ok: pop si ; 还原寄存器pop cxiret ; 返回原程序。 pop IP, pop CS, popfcapitalend: nop ; --------------------- 中断处理程序 -------------------- ; code ends end start没什么新知识点都是之前学过的安装、遍历字符串、字符转大写。 执行效果 13.3 对 int、iret 和栈的深入理解 问题用 7ch 中断例程完成 loop 指令的功能 模拟 loop s参数bx 存 s 到 se 之间的位移 cx 循环次数返回无应用举例在屏幕中间显示80个“!” 主程序 assume cs:code code segmentstart: mov ax,0b800hmov es,axmov di,160*12 ; 从第16向第一个字符开始正好一行80个字符mov bx,offset s-offset se ; 参数se到s的【位移】 -9mov cx,80 ; 参数循环80次; ES: 当前偏移量 000Eh 23 (-9) 14s: mov byte ptr es:[di],! ; add di,2int 7ch ; 实现 loop s 效果se: nop ; 当前偏移量 0017h 23mov ax,4c00hint 21h code ends end start从 s 到 se 共 9 个字节。把它存进 bx传给中断处理程序 在中断处理程序中我们就是利用它来算出 s 偏移量来实现循环的。从上面的截图可以看出 mov byte ptr es:[di],! 这一句被反编译成了两句。 2.1. 先是 ES: 看上去是设置默认数据段的意思 。 2.2. 因为第二句中 MOV BYIE PIR [DI],21 中没有写段地址只写了 [DI] 中断处理程序 assume cs:code code segmentstart: ; ---------------- 安装(复制数据) ----------------mov ax,csmov ds,axmov si,offset lp ;设置 ds:si 指向源地址mov ax,0mov es,axmov di,200h ;设置 es:di 指向目的地址mov cx,offset lpend-offset lp ;设置 cx为传输长度cld ;设置传输方向为正。movsb中si,di递增rep movsb ;重复复制数据次数由 cx 控制; ---------------- 安装(复制数据) ----------------; ----------------- 设置中断向量 -----------------mov ax,0mov es,ax ; 段地址 0mov word ptr es:[7ch*4],200h ; 设置【中断处理程序】的偏移地址mov word ptr es:[7ch*42],0 ; 设置【中断处理程序】的段地址; ----------------- 设置中断向量 -----------------mov ax, 4c00H ; 退出int 21H ; 触发33号中断; ; --------------------- 中断处理程序 -------------------- ; 模拟 loop s 效果 ; ------------------------------------------------------- ; 参数bx 下一句指令到 s 之间的位移 ; 参数cx-1 循环次数 ; -------------------------------------------------------lp: push bp ; 备份寄存器mov bp,sp ; 取栈顶所指的内存位置dec cx ; 计数 cx cx-1jcxz lpret ; cx 为 0 就跳出循环add [bp2],bx ; 分析1lpret: pop bp ; 还原寄存器iret ; 分析2 【重点】lpend: nop ; --------------------- 中断处理程序 -------------------- ; code ends end start分析 分析1. 上面我们从 sp 拿到了栈顶内存地址存到 bp。 这里我们就直接修改这段内存中的偏移量了。当前栈中[bp, ip, cs, flags] 注意这时的 bp 是栈顶跟栈中备份的那个bp值可不是同一个东西了 所以修改时使用的是 [bp2] 指向中断前备份的 IP。分析2. iret 是用来返回原程序继续执行的。它会从栈中恢复中断前保存的寄存器状态还原了CS:IP 就能实现继续执行中断前的下一条指令了。 pop IP pop CS popf这里是本节的重点了欺骗善良无知的iret。 在中断触发前IP 指向了标号 se 处。在主程序中我已经计算出了se到s之间的偏移中断过程中会备份当前寄存器pushf, push cs, push ip 。中断处理程序中我们在 add [bp2],bx ; 分析1 这句修改了栈中备份的IP的值。 所以iret恢复后其实指向了标号 s这也就实现了跳回去重新执行的效果。 执行效果 检测点 13.1 《汇编语言》- 读书笔记 - 检测点 13.1 13.4 BIOS 和 DOS 所提供的中断例程 BIOS基本输入输出系统存储在系统板的ROM中包含以下内容 硬件系统的检测和初始化程序外部中断和内部中断的中断例程用于对硬件设备进行I/O操作的中断例程其他与硬件系统相关的中断例程 DOS操作系统同样提供了中断例程这些例程是操作系统向程序员提供的编程接口。BIOS和DOS提供的中断例程包括许多子程序它们实现了常见的编程功能。程序员可以通过int指令直接调用:BIOS或DOS的中断例程来完成特定任务。与硬件设备相关的DOS中断例程通常会进一步调用BIOS的中断例程以执行底层硬件操作。 13.5 BIOS 和 DOS 中断例程的安装过程 在8086架构的早期个人计算机系统中BIOS和DOS中断例程的安装过程并非由用户程序直接执行安装而是内置于系统的初始化过程中。以下是一个简化的概述 BIOS中断例程的安装 开机后CPU 一加电自动从FFFF:0000H地址处开始执行ROM中的代码即BIOS。 这个位置存放着一条跳转指令它会跳转到ROM中的实际BIOS启动代码区域。BIOS首先进行硬件自检POST, Power-On Self-Test检测和初始化硬件设备。BIOS建立中断向量表将自身的中断处理程序 的入口地址填入到中断向量表对应的内存位置。 只需要有登记入口地址因为中断处理程序本身已固化在BIOS的ROM中。 DOS中断例程的安装 硬件自检和初始化完成后调用 int 19h 进行操作系统的引导。 1.1. 在BIOS对 int 19h 中断做出响应时它首先从硬盘的第一个扇区即主引导记录MBR读取512字节的数据到内存特定位置如0x7C00。 1.2. MBR中的前446字节通常是机器码构成的操作系统引导程序Boot Loader该引导程序接着会被CPU执行。 1.3. 引导程序的任务是找到并加载实际的操作系统例如MS-DOS或更现代的操作系统的核心文件并将控制权转交给操作系统。当DOS启动时它会接管控制权并且根据需要重定向某些中断向量以便调用自己的中断例程来处理特定的服务请求。DOS通常会保留一部分中断向量用于调用原始的BIOS服务同时提供额外的中断服务例程以支持文件操作、磁盘读写等功能。 总之在8086环境下BIOS和DOS中断例程的安装是指在系统启动阶段由固件和操作系统自动完成中断向量表的填充和设置而不是程序员手动安装的过程。 《汇编语言》- 读书笔记 - 检测点 13.2. 13.6 BIOS 中断例程应用 功能 02H 设置光标位置 INT 10H显示服务 Video Service功能02H设置光标位置参数AH调用 02H 号子程序 BH显示页码 DH行(Y坐标) DL列(X坐标)返回无 assume cs:code code segmentstart: mov ah,2 ; 设置光标位置mov bh,0 ; 显示页码第0页mov dh,5 ; dh 中放行号mov dl,12 ; dl 中放列号int 10hok: mov ax,4c00hint 21h code ends end start功能 09H 在光标位置显示字符 INT 10H显示服务 Video Service功能09H在当前光标处按指定属性显示字符参数AH功能号 09H AL字符内容BH显示页码BL颜色属性 CX字符重复个数返回无 assume cs:code code segmentstart: mov ah,2 ; 设置光标位置mov bh,0 ; 显示页码第0页mov dh,5 ; dh 中放行号mov dl,12 ; dl 中放列号int 10hmov ah,9 ; 在光标位置显示字符mov al,a ; 字符内容mov bl,11001010b ; 颜色属性mov bh,0 ; 显示页码mov cx,20 ; 字符重复个数int 10hok: mov ax,4c00hint 21h code ends end start13.7 DOS 中断例程应用INT 21H 在8086架构下int 21h是DOS操作系统为应用程序提供的一种系统API。 通过调用int 21h并设置不同的AH寄存器值程序员可以请求执行多种操作如文件操作、设备I/O、内存管理等。 这些中断服务例程相当于DOS系统的函数库使得应用程序能够与操作系统进行交互和访问底层资源。 功能 4CH返回码方式的终止进程 INT 21HDOS 中断例程功能 4CH终止程序的执行并可返回一个代码参数AH功能号 4CH AL返回值返回无 mov ah,4ch ; 调用 4ch 号功能 mov al,00h ; 返回值 int 21h功能 09H输出一个字符串到标准输出设备上 INT 21HDOS 中断例程功能09H输出一个字符串到标准输出设备上。待显示的字符串以$作为其结束标志参数AH功能号09H DS:DX待输出字符的地址返回无 assume cs:code data segmentdb Welcome to masm,$ data endscode segmentstart: mov ah,2 ; 设置光标位置mov bh,0 ; 第0页显示mov dh,5 ; dh 中放行号mov dl,12 ; dl 中放列号int 10hmov ax,datamov ds,axmov dx,0 ;ds:dx指向字符串的首地址 data:0mov ah,9int 21hok: mov ax,4c00hint 21h code ends end start实验 13 编写、应用中断例程 《汇编语言》- 读书笔记 - 第13章-实验13编写、应用中断例程 参考资料 DOS 中断参考手册

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东三省网站建设公司查询注册过哪些网站

《省级国土空间规划编制技术规程》国家标准(GB/T 43214-2023,以下简称《规程》),将于2024年1月1日起实施,该《规程》由市场监管总局(国家标准委)9月7日批准发布。 《规程》由自然资源部组织编制…

网站 建设 拖拉 源码 系统程序员不是做网站的

枚举:一组相关的值定义了一个共同的类型,使你可以在代码中以类型安全的方式来使用这些值。 1.枚举语法 //枚举成员不会被赋予默认的整型值。成员本身就是完备的值,类型为CompassPoint。 enum CompassPoint {case northcase southcase eastcas…

可口可乐网站建设海口网站建设做网站

文章目录 1.概述2.Android源下载1.配置环境变量2.安装curl3.下载repo并授权4.创建一个文件夹保存源码5.设置repo的地址并配置为清华源6.初始化仓库7.指定我们需要下载的源码分支并初始化 2.1 使用移动硬盘存放Android源码的坑2.2 解决方法 3.Android源码编译4.Android源烧录 1.…

许昌网站制作公司网站建设要买哪些软件

"香港服务器"和"香港云服务器",是两种不同的香港区域的服务器,免备案,都有各自的优势和适用场景,取决于您的需求和预算。以下是它们的一些区别和特点: 香港服务器: 物理服务器&#xf…

办个人网站租空间怎么选择赣州网站建设

1.运算符重载 • 当运算符被⽤于类类型的对象时,C语⾔允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使⽤运算符时,必须转换成调⽤对应运算符重载,若没有对应的运算符重载,则会编译报错;(运算…

聊城网站建设哪个好wordpress编辑用户头像

摘要: 本笔记分析了使用预训练的模型生成文本的示例代码。它的步骤如下: 使用已加载的分词器 tokenizer 对输入文本进行处理,转换为模型可以理解的格式。输入文本是国家和首都的信息,最后一句是未完成的,需要模型来生成。将处理后的输入转移到模型所在的设备上(例如GPU或…

网站logo是什么意思潘虎设计公司

mac还是使用brew install简单一些;最好使用一种安装方式,不要多种方式互用; 更新npm到最新版本npm install -g npm更新npm到指定版本 npm -g install npm2.9.1指定安装目录npm install --prefix /usr/local -g npm 1、从官网https://nodejs.o…

做互联网交易网站的条件建立网站需要注意什么

《C新经典设计模式》之第19章 职责链模式 职责链模式.cpp 职责链模式.cpp #include <iostream> #include <memory> #include <string> using namespace std;// 请求传递给链中的若干对象&#xff0c;哪个对象适合处理就自行处理 // 使多个对象都有机会处理请…

最便宜的网站建设WordPress图片方案

AI 使用大型语言模型&#xff08;LLM&#xff09;来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本&#xff0c;并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭&#xff0c;而现有的开放课程数量十分有限。这就…

成都创新互联科技有限公司长沙seo推广营销

一&#xff1a;背景 一直在用 WinDbg 调试用户态程序&#xff0c;并没有用它调试过 内核态&#xff0c;毕竟不是做驱动开发&#xff0c;也没有在分析 dump 中需要接触用内核态的需求&#xff0c;但未知的事情总觉得很酷&#xff0c;加上最近在看 《深入解析 Windows 操作系统》…

微信制作网站设计wordpress网站换域名

1 教学实训总体设计 1.1 建设背景 &#xff08;一&#xff09;政策推动与战略部署 近年来&#xff0c;物联网技术在全球范围内得到了广泛的关注和应用。作为信息技术的重要组成部分&#xff0c;物联网在推动经济转型升级、提升社会管理水平、改善民生福祉等方面发挥着重要作…

网站中的宣传册翻页动画怎么做在深圳注册公司流程及费用

目录 一、网络配置命令 1.ifconfig——IP地址 1.1ifconfig的基础用法 1.1.1ifconfig命令详解 1.2常用格式 1.3修改网卡名称 1.3.1临时修改 1.3.2永久修改 1.4临时修改网卡 1.4.1设置虚拟网卡 1.4.2延伸——ethtool 1.5永久修改网卡 1.6实验 —— 双网卡配置 1.…

青岛php网站建设网站怎样做关键词优化

参考资料&#xff1a;用python动手学统计学 1、t统计量 t统计量的计算公式为&#xff1a; 其中&#xff0c;为样本均值&#xff0c;μ为总体均值&#xff0c;为实际样本的无偏标准差&#xff0c;N为样本容量。 t统计量的公式与标准化公式类似。t统计量可以理解为对样本均值…

wordpress网站静态化在线查看网站源码

实验五&#xff1a;AAAI 会议论文聚类分析 ​ 本次实验以AAAI 2014会议论文数据为基础&#xff0c;要求实现或调用无监督聚类算法&#xff0c;了解聚类方法。 1 任务介绍 ​ 每年国际上召开的大大小小学术会议不计其数&#xff0c;发表了非常多的论文。在计算机领域的一些大…

如何查看vs中建设好的网站开通招聘网站如何做分录

2023年8月30日&#xff0c;EESA第二届中国国际储能展览会在苏州国际博览中心拉开帷幕&#xff0c;科士达以“零碳光储数能未来”为主题&#xff0c;亮相G3-20展台&#xff0c;多维度展现户用光储、工商业储能、大型储能等解决方案&#xff0c;彰显安全、高效、可靠的产品性能和…

一起做网站广州下载中心官方网站建设银行

1、匿名对象 匿名&#xff1a;没有名字 生活层面&#xff1a;匿名投票、匿名信... 程序层面&#xff1a; 有名对象和匿名对象 有名对象&#xff1a; 理解&#xff1a;有名字的对象 模板&#xff1a; 数据类型 对象名 new 数据类型(...); 匿名对象&#xff1a; 理…

关于网站建设的好处网站建设教程主页

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者 公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 转载说明:务必注明来源(注明:…

天津平台网站建设推荐北京百度seo排名点击软件

1 命名规范 1.1 Go是一门区分大小写的语言。 命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定&#xff1a;任何需要对外暴露的名字必须以大写字母开头&#xff0c;不需要对外暴露的则应该以小写字母开头。 当命名&#xff08…

淄博企业网站建设网页升级紧急通知区域

这是我去额尔古纳的公路上&#xff0c;隔着车窗拍摄的照片。三幅照片可以感觉时间的变化&#xff0c;从午后到黄昏&#xff0c;光和色彩逐渐朦胧凝重&#xff0c;像蒙古画家朝戈的油画。这样的景象在草原上随处可见。沙石路只有在草原的深处可以见到&#xff0c;坐在车里身体会…

.net开发网站的优点网站建设广告平台推广

Python2 与 Python3 print 不换行 分类 编程技术 本文主要介绍在 Python2 与 Python3 下 print 实现不换行的效果。 Python 3.x 在 Python 3.x 中&#xff0c;我们可以在 print() 函数中添加 end"" 参数&#xff0c;这样就可以实现不换行效果。 在 Python3 中&a…