首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

中断服务子程序是如何被执行

但是中断服务子程序并没有被主程序进行调用,中断服务子程序执行是通过中断请求完成,也就是说中断服务子程序可以发生在主程序执行随意位置,那现在就面临一个问题了,如果当CPU 正在执行函数调用子程序内容时候产生了一个中断请求...,那么这个时候 CPU 将暂停执行函数调用子程序内容,转而去执行中断服务子程序内容,如果不进行额外处理,那么函数调用子程序相关数据将丢失,因此在执行中断服务子程序之前,CPU 必须要保存发生中断那个地方相关信息...那么在执行现场保护时将相关寄存器值压入堆栈,应该使用哪个堆栈指针呢?...,也就是说如果在中断服务子程序使用到这部分寄存器时候就需要进行手动压栈,那么这部分压栈操作在汇编层面就能看到了。...现在我们再来思考,在 CPU 中,中断源不止一种,可以是按键按下所触发一个外部中断,也可能是在使用串行通信时,收到数据所触发一个中断,亦或是在 CPU 中定义一个定时中断由于设置时间到了而触发定时中断

1.1K10

中断服务子程序是如何被执行

但是中断服务子程序并没有被主程序进行调用,中断服务子程序执行是通过中断请求完成,也就是说中断服务子程序可以发生在主程序执行随意位置,那现在就面临一个问题了,如果当CPU 正在执行函数调用子程序内容时候产生了一个中断请求...,那么这个时候 CPU 将暂停执行函数调用子程序内容,转而去执行中断服务子程序内容,如果不进行额外处理,那么函数调用子程序相关数据将丢失,因此在执行中断服务子程序之前,CPU 必须要保存发生中断那个地方相关信息...那么在执行现场保护时将相关寄存器值压入堆栈,应该使用哪个堆栈指针呢?...另外在 CPU 进入中断服务子程序之后,所涉及堆栈操作所使用堆栈一直是主堆栈指针(MSP)。...现在我们再来思考,在 CPU 中,中断源不止一种,可以是按键按下所触发一个外部中断,也可能是在使用串行通信时,收到数据所触发一个中断,亦或者在 CPU 中定义一个定时中断由于设置时间到了而触发定时中断

1.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

学习Excel技术,关注微信公众号: excelperfect 在本系列后面的示例程序中,你将会看到如何使用项目和带图像库控件通过getItemLabel和getItemImage回调属性引用VBA...这个过程为动态菜单内容创建XML代码。 注意,上面的VBA代码以类似于CustomUI Editor中一种方式缩进,通过使用Debug.Print语句发送构建XML代码到立即窗口。...(对于3个不同工作表)使用相同子动态菜单。...这可以通过使用模块级变量和getPressed回调属性来实现。下面,我们修改现有的VBA代码来实现此目的(加黑代码是在上面代码中增加代码): 1....一般而言,即使工作簿中代码执行完毕,工作簿中公共级别变量、模块级变量和过程级静态变量仍然保留其值。可以使用以下四种方法清除这些变量存储值: 在过程中或者在立即窗口中执行End语句。

5.9K20

VBA专题10-24:使用VBA操控Excel界面之单元格上下文菜单(Excel 2010及以后版本)

学习Excel技术,关注微信公众号: excelperfect 添加按钮控件 假设你需要对工作表中前面有货币符号执行计算,然而那些值被解释为文本,你要编写VBA过程来移除所选单元格区域中货币符号。...在标准VBA模块中过程: Sub RemoveUSD(control As IRibbonControl) Dim workRng As Range Dim Item As Range...添加其他类型控件 除了上面介绍使用XML代码在单元格上下文菜单中添加按钮控件外,还可以添加6种其他类型内置控件和自定义控件:切换按钮、拆分按钮、菜单、库、复选框和动态菜单。...专题10-23:使用VBA操控Excel界面之添加动态菜单》一文中,当用户激活不同工作表时,在Workbook_SheetActivate事件处理中明确地使菜单无效(为了重新构建菜单)。...然而,使用VBA代码实现添加控件仍然是可能

1.5K10

VBA专题10-21:使用VBA操控Excel界面之禁用和启用控件、组和选项卡

虽然在功能区中被禁用控件是灰色,但你仍然可以通过快捷键组合执行它们中一些命令。...例如,按Ctrl+C复制,按Ctrl+X剪切,但是不会执行Ctrl+B加粗和Ctrl+U加下划线。 也可以设置自已条件来在运行时决定是否禁用某个内置控件。...例如,下面的XML代码和VBA代码能够在运行时满足某条件时使“加粗”和“下划线”控件禁用(和启用): image.png 注意,两个command元素getEnabled属性都引用相同getEnabledBU...自定义控件 通过使用getEnabled属性禁用(和启用)自定义控件方法与使用getVisible属性隐藏(和取消隐藏)自定义控件方法相同。...End Sub 要基于其在XML代码中id禁用(和启用)某自定义控件,在现有的标准VBA模块或者新标准VBA模块中包括下面的代码: Sub EnableAll() Call RefreshRibbon

3.2K20

VBA专题10-11:使用VBA操控Excel界面之在功能区中添加自定义拆分按钮控件

拆分按钮控件是一个含有单击按钮和下拉按钮列表组合控件。用户可以选择单击按钮,或者从下拉列表中选择单击其中一个按钮来执行相应命令。...添加拆分按钮控件步骤与本系列前面文章(参见:VBA专题10-10:使用VBA操控Excel界面之在功能区中添加自定义切换按钮控件、VBA专题10-9:使用VBA操控Excel界面之在功能区中添加自定义按钮控件...图1 在VBE中添加回调代码: 'Callbackfor Btn1 onAction Sub Macro1(control As IRibbonControl) MsgBox control.Tag...End Sub 'Callbackfor menuButton2 onAction Sub Macro2(control As IRibbonControl) MsgBox "执行Macro2"...End Sub 'Callbackfor menuButton3 onAction Sub Macro3(control As IRibbonControl) MsgBox "执行Macro3

1.8K10

在Excel中自定义上下文菜单(中)

标签:VBA,用户界面 本文接上篇文章: 在Excel中自定义上下文菜单(上) 使用RibbonX将控件添加到单元格上下文菜单 在下面的示例中,将创建与上文描述示例相同按钮和子菜单,但使用RibbonX...Sub BuiltInSaveCommand(control As IRibbonControl) CommandBars.ExecuteMso "FileSave" End Sub 此外,还可以使用...然而,通过使用ExecuteMso方法,可以在Microsoft Office Fluent UI上执行任何内置控件。...使用VBA代码或RibbonX将动态菜单添加到单元格上下文菜单 动态菜单指向在运行时创建菜单回调过程。dynamicMenu控件包含指向GetContent回调过程getContent属性。...图4 例如,下面的VBA代码在运行时使用两个按钮构建动态菜单,这意味着只有单击上下文菜单上菜单控件才能创建动态菜单。

1.6K40

常用功能加载宏——单元格字符处理

使用Excel如果经常处理英文资料的话,应该会经常碰到需要转换大小写情况,Excel提供了UPPER、LOWER等转换函数。...使用函数需要在新单元格进行转换,每次都要输入公式,转换完成再复制回去,有点麻烦。而且如果要实现首字母大小写转换的话,还必须嵌套Left、Mid等函数,更加不方便。...首先添加customUI.xml代码,因为字符处理相关功能较多,所以使用下拉菜单来管理: <menu id="rbmenuString" label="字符处理 " size="large...) Call MRange.FirstToUpper End Sub Sub rbbtnToUpper(control As <em>IRibbonControl</em>) Call MRange.ToUpper...End Sub Sub rbbtnToLower(control As <em>IRibbonControl</em>) Call MRange.ToLower End Sub 函数实现比较简单,主要就是调用<em>VBA</em>

40710

VBA专题10-14:使用VBA操控Excel界面之在功能区中添加自定义库控件

excelperfect 在自定义功能区时,我们可以插入图像到自定义库中,图像文件类型可以是ico、bmp、png、jpg和tif。 要给自定义功能区选项卡添加库控件,执行下列步骤: 1....查找并选择你想要图像文件,并单击打开。 该图像文件副本被插入,删除原始文件不影响插入文件。 注意:在图像文件文件名中避免使用空字符,否则不能正确地引用文件。 6....图2 代替上述第4步和第5步中手工插入图像,可以通过使用VBA过程使用相同图像填充库。通过赋VBA过程名称到loadImage回调属性来实现。下面列出了XML代码和VBA代码: ?...当打开该工作簿时,执行LoadImage过程。...Excel\使用VBA操控Excel界面\04.

2.8K10

VBA专题10-19:使用VBA操控Excel界面之在功能区中添加不同类型自定义控件

添加该控件步骤与前面文章介绍相同,新建一个启用宏工作簿并保存,关闭该工作簿,然后在CustomUI Editor中打开该工作簿,输入下面的XML代码: ? ? ? ? ? ?...在Excel中打开该工作簿,然后打开VBE,插入一个标准VBA模块,输入下面的代码: 'Callback for button1 onAction Sub Macro1(control As IRibbonControl...Boolean) MsgBox "复选框被选取: " &pressed End Sub 其中,在首次打开工作簿或者使标签控件无效时执行getLabel1和getLabel2回调过程。...在该工作簿自定义选项卡中不同类型控件如下图所示: ? 下图演示了在自定义选项卡中各类控件效果: ?...说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。

1.8K10

VBA专题10-20:使用VBA操控Excel界面之隐藏和取消隐藏控件、组和选项卡

可以在启动(当Excel开启时)动态设置值,可以在运行时改变它们值(在使元素无效后通过使用VBA回调过程)。...方法 '使用下面的语句使功能区无效 'myRibbon.Invalidate End Sub 当激活不同工作表时,执行SheetActivate事件处理。...隐藏“开始”和“数据”选项卡功能区如下图所示: ? 虽然选项卡中控件被隐藏,但仍然可以通过快捷键组合和上下文菜单执行它们底层命令。...方法, '使用下面的语句使Ribbon无效: 'myRibbon.Invalidate End Sub 当激活不同工作表时,执行SheetActivate事件处理。...注意,两个按钮getVisible属性都使用了相同getVisibleBtnBC回调过程。当打开工作簿或者当其中一个或两个控件被无效时执行该回调。

7.7K20

VBA专题10-9:使用VBA操控Excel界面之在功能区中添加自定义按钮控件

添加按钮 如果要在内置功能区选项卡中添加两个按钮,在单击这些按钮时会调用VBA过程,那么执行下面的步骤: 1. 创建新工作簿并保存为启用宏工作簿。 2....选项卡元素: idMso属性值是内置选项卡名称。本例中,TabInsert是“插入”选项卡idMso。如果要在其他内置选项卡中插入按钮,那就使用其他选项卡idMso替换掉TabInsert。...如果要使用自已设计图像,只需使用image属性替换掉imageMso属性。 onAction属性是一个回调属性。该属性值是在单击按钮时要执行VBA过程名称。 5....插入一个标准VBA模块并粘贴刚才复制回调代码。 11....Context.Caption是出现在该窗口标题栏中名称,本例中,为该工作簿名称。 Tag:XML代码中元素(本例中是按钮元素)tag属性值。通常,标签用于识别控件执行操作。

4.8K30

Excel VBA常用功能加载宏——工作表隐藏

有些时候制作表格,一些基础设置数据可能不希望使用者看到并被修改掉,这个时候一般可能会选择把表格隐藏起来。 工作表隐藏很简单,只需要右键点击工作表名称,然后点击隐藏就可以。...这种基本操作,大多数人Excel用过一段时间应该都会,所以保证不了其他人不会发现隐藏起来表格。...这个可以通过VBA代码编辑器里属性窗口,设置工作表Visible属性为xlSheetVeryHidden来实现,当然使用VBA来设置肯定就更为方便快捷了: ?...) Call MShtWk.VeryHideActiveSht End Sub Sub rbbtnVeryHideExceptActiveSht(control As IRibbonControl...) Call MShtWk.VeryHideExceptActiveSht End Sub Sub rbbtnUnHideAllSht(control As IRibbonControl)

2.5K30

VBA专题10-15:使用VBA操控Excel界面之在功能区中添加自定义标签控件

excelperfect 如果要在功能区选项卡中添加标签,那么执行下面的步骤: 1. 创建新工作簿并保存为启用宏工作簿。 2. 关闭该工作簿,然后在CustomUI Editor中打开该工作簿。...getLabel是一个回调属性,赋值VBA过程名称,本例中为getLabel1回调过程。该过程在首次打开该工作簿时或者在使该控件无效时执行。...一旦使某元素无效,任何与该元素相关数据就被销毁,并且通过调用所有的在XML代码中声明该元素回调属性引用VBA过程来自动刷新该元素。因此,要提高效率,应仅使必需元素无效。...之后,要将其粘贴到工作簿VBA模块中。 7. 保存并关闭该文件。 8. 在Excel中打开该工作簿文件。...插入一个标准VBA模块并粘贴刚才复制回调代码。 11.

2.2K10

VBA专题10-18:使用VBA操控Excel界面之在功能区中添加自定义菜单控件

excelperfect 这是本系列文章讲解最后一种在功能区中添加自定义控件类型,也是用于组织多个命令一种非常有用控件——菜单控件。...在Excel中打开该工作簿,然后打开VBE,插入一个标准VBA模块,输入下面的代码: 'Callback for button1 onAction Sub Macro1(control As IRibbonControl...注意,本例只是演示了使用XML在菜单控件中添加按钮和菜单控件,也可以添加其他类型控件,例如切换按钮、拆分按钮、库、复选框、通用控件和动态菜单。...在后面的文章中我们会详细介绍添加动态菜单这类特殊控件。 下图演示了在自定义选项卡中添加菜单控件效果: ?...说明:本专题系列大部分内容学习整理自《Dissect and Learn Excel VBA in 24 Hours:Changing workbook appearance》,仅供学习研究。

1.5K30
领券