汇编中接管16H使得输入A显示B,输入B显示A并驻留内存,不知道怎么老报cpu错误

问题描述

汇编中接管16H使得输入A显示B,输入B显示A并驻留内存,不知道怎么老报cpu错误

.386
DATA SEGMENT
DATA ENDS
STACK SEGMENT USE16 STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT USE16

ASSUME DS:DATA,CS:CODE,SS:STACK
OLD_INT DW ?,?

NEW16H: CALL DWORD PTR OLD_INT
CMP AL,41H
JZ L1
CMP AL,42H
JZ L2
JMP L3
L1: MOV AL,42H
JMP L3
L2: MOV AL,41H
L3:

IRET
START: XOR AX,AX
MOV DS,AX
MOV AX,DS:[16H*4]
MOV OLD_INT,AX
MOV AX,DS:[16H*4+2]
MOV OLD_INT+2,AX
CLI
MOV WORD PTR DS:[16H*4],OFFSET NEW16H
MOV DS:[16H*4+2],CS
STI
MOV AH,0
INT 16H
MOV DX,OFFSET START+15
SHR DX,4
ADD DX,10H
MOV AL,0
MOV AH,31H
INT 21H
MOV AH,4CH
INT 21H

CODE ENDS
END START

时间: 2024-10-07 01:44:20

汇编中接管16H使得输入A显示B,输入B显示A并驻留内存,不知道怎么老报cpu错误的相关文章

在Delphi中处理数据库日期型字段的显示与输入

使用Delphi进行数据库设计时,不可避免的会涉及到日期型字段的输入问题.不过与 Microsoft的Access 97中文版等相比,Delphi本身提供的日期型字段的显示和输入方式并 不适合中国人的习惯. 因此对于日期型字段的处理,大家提出了不少解决方法,但是处理结果在显示和输入 上并不统一,例如显示时可以实现"yyyy年mm月dd日"的格式,但是在输入时还是要按照 国外的习惯用"yyyy-mm-dd"的形式进行输入:而使用TdateTimePicker进行选择输

嵌入调用-如何在汇编中call scanf_s 输入一个字符 求求求!

问题描述 如何在汇编中call scanf_s 输入一个字符 求求求! 这是在汇编中call scanf_s 输入Integer 的部分代码 char format[]="%d"; //format string for the scanf function int first; _asm{ lea eax,first push eax lea eax,format; 读取第一个number push eax call scanf_s add esp,8 mov eax,dword p

Excel表格输入大量数字或身份证号码显示异常解决方法

在用 Excel 输入身份证号码.银行账户等较长数字后,为什么变成了有加号和字母的形式了呢?如下图 这是一个普遍的数字输入问题.Excel 中默认的数字格式是"常规",最多可以显示11位有效的数字,超过11位就会以科学记数形式表达. 要输入多位数字且能完全显示,可以尝试以下两种方法: 将单元格格式设置为文本 选中目标单元格,右击鼠标,选择"设置单元格格式". 在"数字"选项卡上,从"分类"下面选中"文本"选

界面划窗口设计-WIN32汇编中窗口设计,新手求帮助

问题描述 WIN32汇编中窗口设计,新手求帮助 .386 .model flat,stdcall option casemap:none include windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib .data? hInstance dd ? nhWnd dd ? .data SZClassName db "My Windows" SZW

在ASP.NET 2.0中操作数据之五十三:在Data Web控件显示二进制数据_自学过程

导言: 在前面的教程我们阐述了应用程序处理二进制数据的2种模式,以及使用FileUpload 控件从浏览器向服务器文件系统上传文件.当文件上传并存储在文件系统里时,应在相应的数据库记录里存储该文件的存储路径. 我们先来看如何为最终用户提供二进制数据.怎样展示二进制数据呢?这取决于其类型.比如图片,我们将其显示为image:如果是PDFs,Microsoft Word文档.ZIP文件或其它类型的数据,或许提供一个"Download"链接比较妥当. 在本节,我们看如何在GridView和D

数据帧-C#中多次重复发送一帧,怎么实时显示到窗体

问题描述 C#中多次重复发送一帧,怎么实时显示到窗体 有一个数据包,有帧头桢尾,数据,共22个字节,通过调试工具发送出去,并实时显示到窗体,并显示帧数.求助

qt-使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接

问题描述 使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接 5C cmd下使用telnet也是输入字符就断开连接电脑杀毒软件一直没启动,防火墙全部关闭,端口号10000然后写了个客户端,同样的问题,输入字符断开连接.楼下依次上图 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 输入字符a就出现了断开连接 下面上代码 解决方案六: chatsever.h #ifndef CHATSEVER_H#define CHATSEVER_H #inclu

让数据库中的记录用上一条下一条显示

数据|数据库|显示 让数据库中的记录用上一条下一条显示 若要让RecordSet移动到上一条下一条的位置,让我们先学会以下RecordSet对象的属性和方法: BOF属性:当前游标指到RecordSet的第一条记录. EOF属性:当前游标指到RecordSet的最后一条记录. Move方法:移动游标到RecordSet中的某一个记录. AbsolutePosition属性:当前游标在RecordSet中的位置. bookmark(书签)属性:对RecordSet的一条记录做一个记号. 详细介绍如

说清汇编中的栈操作地址问题

文章其实很简单,在这里只是想给大家一个提醒.让大家回顾一下曾经的知识而已,大学的知识,现在你还记得么? 另外,善意提醒下博客园团队,虽然我理解商业重要性,但是我个人还是希望把培训学校的广告撤下博客园首页的广告行列中,我相信博客园是一个纯洁的技术博客,大家对博客园都非常信任,我们不希望让太多的初学者受到这个影响,个人意见而已. 我刚才做一个小软件的破解,一直被堆栈的操作弄得昏昏沉沉,在这里写一下也算是加深一下自己的印象,做个总结,也希望能够提醒到大家. 步入正题,说说汇编中的栈操作. 首先,我们先