key授权dat文件破解方法

key授权dat文件破解方法,第1张

这种密钥授权模式,需要密钥文件授权才能打开文件

老办法,先拖进OD中动态分析再说:

然后F8进行调试这时候发现了一个条件跳转函数jnz下面是说跳转未实现,那我们发现上面有个Key.dat文件,应该是授权文件,但是我们没有,我们可以尝试跳转,jnz条件是>>ZF=0,即修改值为1可以跳转,我们这里可以汇编进行无条件跳转,函数是(jmp):

然后继续调试F8:,又发现一个跳转函数jnz,按照老办法对上面进行无条件跳转:

继续F8进行调试下面,又发现了一个跳转函数jl,跳转条件是SF!=ZF,即SF值不等于ZF是跳转,顺着函数红线查看跳转位置,指向了key文件无效,这说明我们不能跳转,一跳转就指向无效提示了,这时我们可以nop填充汇编

然后继续F8调试,又碰到je函数,不过看跳转位置,不用修改,因为没有指向无效key文件

继续F8调试,又发现了jl跳转函数,又一看位置,指向无效key文件,果断nop填充

然后继续F8调试,发现了一个无条件跳转函数jmp,我们看一下指向,这是正确的,即我们成功跳转到授权成功画面了:

全选上述修改进行保存为reverseMe1.exe:

然后测试一下

原文件

修改后的文件:

这就类似于补丁,通过修改文件来修改执行方式.

在别的论坛淘的,稍作修改不敢独享,感谢原创作者,,

------------------------------------

卫星接收机刷机攻略

感谢后面多名网友的批评、指正!

特作出如下补充说明:接收机后面是9针com口的山寨机,由于后来的山寨厂家很不

规范,后面的com口只是个摆设,并不可以直接用3根导线实现连机,打开机箱,如

果在主板上能找到max232芯片,则说明你的com口是真的;如果找不到,仔细观察

后面接口位于主板上的标注,可使用ttl小板连机,个别机器在主板上还可以找到第二

升级口的焊点,自己焊出几根线也一样可以外加ttl小板来连机;如果你的机器做工很

好,里面有2MB的储存器,是老式的机器,铁壳的,里面带有max232芯片的,是可

以直接用3根导线连机的,

一、仔细观察自己的接收机

1、观察接收机背后的升级口是几根针?或几个孔?9针或9孔的机器不需要任何

转换电路(刷机小板)可直接与电脑进行连接;3、4、5、6针的机器需要购买电平转

换电路(刷机小板),因为电脑的电平信号与机器的电平信号不同,所以不能直接与

之通讯,需要电平转换电路做中间的桥梁,一般有两种一种是“RS232转TTL”、另一

种是“USB转TTL”,如果家里有台式电脑,并且后面有COM口(9针串口)的话,推

荐购买“RS232转TTL”,这种小板不需要安装驱动,可直接与电脑连接,另一头连接

接收机,价格便宜,这种小板采用的芯片一般为MAX232或MAX3232,如果购买的是

MAX3232芯片的小板,还需要将小板上的vcc连接到接收机的vcc(+3.3v或+5v)上

为小板供电,除此之外还可以将小板上的vcc和gnd用usb线接到电脑usb口的vcc和

gnd为小板提供稳定的+5v供电;如果购买的是MAX232芯片,则只能使用usb线取来

+5v供电给小板,不可以用接收机上的+3.3v,max232必须采用+5v供电;“USB转

TTL”适合笔记本电脑用户,他们没有9针的com口,用usb转ttl还有一个好处就是不必

外接供电,usb自带供电给小板,但使用“USB转TTL”小板需要安装pl2303驱动,将

usb口变成com口,方可与接收机进行通讯,usb小板所采用的芯片一般为pl2303,

以上是最常见的2种电平转换小板,可以在老式的手机数据线里找找有没有“MAX232”

“MAX3232”“pl2303”这3个芯片……

2、观察自己的接收机的主芯片是什么牌子及型号?常见的主芯片品牌有海尔、国芯、

华亚等……海尔一般为Hi2023或Hi2023E……国芯一般有GX3001……等,不同的芯

片要选择不同的刷机工具,例如海尔的芯片要使用“ABS_Flasher_V1.6”,国芯的芯

片要使用“GxDownloaderIII 1.008”(英文界面)或“GxDownloaderIII 2.120”

(中文界面)……

补充:大家如果遇到“Hi2023”的海尔芯片,请看清楚下面一行写的是什么,如果下面

一行写着“E0925”或“E09xx”等字样,在读取和烧写时应选择2023E,而不要选择

2023!

3、观察自己的接收机储存器是多大的?是1MB的还是2MB的?储存器是系统指令的载

体,读取和烧写的.bin文件就是存储在此芯片内。芯片是 MX25L8005M2C 的储存器,

是1MB的(类似的还有 EN25F80、EN25T80 、M25P80、SST25LF080、

F25L008、AT26DF081、W25P80 等)一般为小正方形共8个引脚(两边各4个);

如果芯片是ATMEL AT45DB161B、MX29F200TTC、EN29LV160AB-70TCP 等,

它的引脚超过20个(两边各超过10个以上引脚)为2MB。总体来说,储存器的芯片型

号如果包含“80”字样是1M的,如果包含“160”字样则是2M的。1MB的储存器就要

使用1M的工具来读取、写入,2M的储存器就要使用2M的工具,否则盲目读取和烧写,

很有可能将你的山机变为砖头,原因是,正版的接收机内部都是采用2M的储存器,工厂

里使用的工具也是2M的,咱们所使用的工具实际上是工厂外漏的工具,都是2M的工具,

如果是用这样的工具读取你的1M储存器,会读出一个2M的文件,这个文件是将你的储

存器连读2遍所得到的,如果修改这个文件,再将其烧写到你的1M的储存器内的话,很

有可能会把你的机器给刷死!(如果使用2M工具写入1M存储器,只是写入正确数据包会造成程序混乱,基本上可以使用)

二、连接电脑与接收机

1、电脑后面是9针com口,接收机有9针的也有9孔的,如果是9针则针多的那一排

最【左】边的是1号针;如果是9孔,则孔多的那一排最【右】边的是1号孔。连接,可

以使用专用的9针串口线来连接,也可以自己找3根导线来连接,方法是:电脑的5针与

接收机的5针(孔)相连,电脑的2针与接收机的3针(孔)相连,电脑的3针与接收机

的2针(孔)相连。

2、接收机是3、4、5、6针的,需要外接电平转换小板,usb口的不需要额外供电,

com口的如果是max232芯片,需要并且只能接usb的+5v供电,com口的如果是

max3232芯片除了可以接usb供电外,还可以利用接收机的+3.3v供电,供电范围更

宽一些!将转换小板插入电脑的com口或usb口,小板上的接线柱分别用杜邦线或导线

连接至接收机,小板的gnd连接收机的gnd,小板的tx(p31)与接收机的rx相连,小

板的rx(p30)与接收机的tx相连,如果是usb的小板只连这3根(usb口需要安装

pl2303驱动),如果是com口的,芯片是max3232可以将小板的vcc与接收机的vcc

相连,com口但芯片是max232就需要再外接个usb的供电啦!

3、接收机后面升级口针脚定义:①万用表调至直流电压档(15-20V左右的档),打开

接收机电源,黑色表笔接AV插头外侧金属或天线插头外侧金属螺丝,红色表笔分别测量

各个针脚电压,一般电压为0v的是gnd,电压为5v的是vcc,电压为1.6v的是bl,电压

为3.3v左右的是tx和rx;②但个别4针的电压有3个针都是3.3v左右,这就需要进一步

测量,关闭接收机电源,万用表调至电阻档,黑色表笔接触av插头或天线插头外侧金属,

分别测量各个针脚电阻,电阻为0的是gnd,电阻增长的是vcc,电阻无限大的是tx和rx;

③为了保险起见,还可以在主板上找到变压器插在主板的排线,一般为4根,关闭接收机

电源,万用表调至电阻档,分别测量这4根电源线与后面各个针的电阻,有几次为0的情

况,一般会找到2个能和电源排线为0电阻的针,它们就是gnd和vcc,排除了此前测量

时已经确定了的gnd,那剩下的就是vcc了;

三、读取接收机储存器中的.bin文件

•在读取.bin文件之前接收机要做一个小小的设置:先用遥控器恢复出厂,然后手动

搜索频点2,会搜索出来5个台,退出后机器会自动找到其余的几个台,一共12个台,这

个时候关机,再来拿去与电脑连机读取……这样做,读出的数据比较纯净,在0c改2e的

时候会比较容易,修改量也会大大减少!

•读取前还要设置一下com口的“每秒位数”在桌面我的电脑上点右键--属性--硬件

--设备管理器--通讯端口(COM1)--右键“属性”--端口设置--每秒位数:选115200。

1、海尔工具:ABS_Flasher_V1.6(有2M和1M工具之分,请大家根据自己的储存器大

小在本帖最下方下载!)电脑与接收机连接后,启动刷机工具,下面显示“等待从机连接”

,此时打开接收机电源,状态会变为“就绪”,如果没变,请关闭软件,关闭接收机电源,

交换tx和rx,再次运行软件并打开接收机电源即可看到状态变为“就绪”,选择芯片型号

2023/2023E,选择com口(usb的小板要安装驱动,然后打开设备管理器,看看你的

usb小板被系统分配到了哪个com口上,如果是com3,就选com3)。默认“全部”最

后点“读取”,读取完成后,就会在工具的“bin”文件夹里找到刚刚读取的文件,将其重

命名后转移到安全的地方,妥善保存!如果多次读取会覆盖上次读取的bin文件,所以每

读取一次都要改名备份好,以免丢失!如果连机成功,接收机前面板的液晶显示不亮,如

果亮了说明没有连接成功,请关软件、关机器,交换tx、rx!

2、国芯工具:GxDownloaderIII 1.008 或 GxDownloaderIII 2.120(有2M和1M

工具之分!)电脑与接收机连接后,

启动刷机工具,点“参数配制”或“>>”按钮进行参数配制,晶振频率选4MHz,1M的储

存器用户选择“串口Flash”剩下的默认就好,然后选择com口,选择“操作模式”为第三

项“导出”,选择保存路径会弹出保存对话框,并在那个保存对话框中填写文件名称,要

带扩展名,例如“全部.bin”然后先点那个大按钮,再开接收机电源(这一步与海尔工具不

同,海尔是先开电源再点读取)。如果是2M储存器的用户请选择“并口Flash”,根据自己

的型号选择Flash型号……如果连机成功,接收机前面板的液晶显示不亮,如果亮了说明

没有连接成功,请关软件、关机器,交换tx、rx!

请大家先下载这个软件:UltraEdit-32 15.10.0.1026 官方简体中文版

正版下载地址:http://www.newhua.com/soft/7752.htm

顺便给大家正版的注册码:

用户名:fuck you

授权码:QMPFM-INRPV-LLOK8-KGRLM-NJKFA-ELWOV-JKDPQ-PQJMP

•如果无法判断自己的储存器是1MB的还是2MB的,可以先使用2M的工具读出一个

2M的文件来,然后用UE打开,ctrl+F查找“cctv-1”勾选“查找ASCII”,如果只能查找

到一次,说明你的储存器是2M的,如果可以找到2次说明你的储存器是1M的。如果只找

到一次cctv-1那么你读取的bin可以直接用于修改和备份;如果你找到了2次cctv-1,那

么你就需要改用1M的刷机工具再次读取一份bin文件。

1、编辑海尔芯片的.bin文件,请首先下载好“【海尔】26日后46台.bin(在本帖最下

方下载)”文件,然后用ue软件打开46台.bin,再打开你要编辑的海尔芯片读取的.bin

文件,先在46台.bin文件中ctrl+A全选,再ctrl+C复制,注意ue软件的左下脚,有个

“选定字节:1518”(每对数字叫一个字节)记住这个数字1518!

然后转到要编辑的那个文件中,ctrl+F查找“cctv-1”勾选“查找ASCII”,找到后在上面

一行找到“00 02 08”,这个就是pid的起点位置

从00 02 08开始向下选,按住鼠标左键不松手,一边向下选,一边注视着ue软件右下

脚的“选定字节”到1518即可(由于一对数字代表一个字节,所以最后光标应停留在

倒数第5对与倒数第6对之间的空格处),刚才复制了1518个字节,此时也选择了1518

个字节,这个时候就可以使用ctrl+V进行粘贴了。

然后将软件右侧的滚动条拉到最顶端,鼠标点一下第一个字节,ctrl+F查找“55 aa”不

要勾选“查找ASCII”,点“查找下一个”按钮(下一次查找按键盘上的F3键就可以了,

不必再按ctrl+F了),观察找到的55 aa后面第5对数字是不是0c,如果是则将0c改为2e

(大小写都可以,软件会自动帮你变成大写),如果55 aa后面第5对数字不是0c则不必

修改(常会碰到00、05、0B等,都不用修改)只修改0c改为2e即可……

直到下方出现了大量的FF FF FF,结束修改,点保存按钮就完成了修改工作!注意,读取

后要备份好,再复制一份进行修改,以免给修改坏了,保存后,ue软件会给你备份一个.bak

文件,那个文件是你保存前的状态,没什么用的话可以删除掉,反正你也有最原始的备份文件。

2、编辑国芯的.bin文件,请首先下载“【国芯】26日后46台.bin”,

然后用ue软件打开46台.bin文件,再打开你要编辑的读取出来的国芯芯片数据.bin文件,

先在46台.bin文件中ctrl+A全选,再ctrl+C复制,注意ue软件的左下脚,有个“选定字

节:131072”(每对数字叫一个字节)记住这个数字131072!

然后转到要编辑的那个文件中,ctrl+F查找“cctv-1”勾选“查找ASCII”,找到后,向上拉

一点直到出现大片的“FF FF FF”,FF下面那一行是以“AA BB CC DD”开始的,这个就是

国芯数据的起点。

从“AA BB CC DD”向下选,按住鼠标左键不松手,一边向下选,一边留意ue软件的右下

脚,选定字节数到“131072”即可(由于这个数据量较大,除了按住鼠标不松手以外,还

可以点一下数据起点,下拉滚动条,按住Shift键加鼠标单击的方法选择看看选定字节数量,

再向下拉滚动条,再按住shift键,鼠标点击数据……直到选择的字节数达到131072为止),

选中了131072字节后(正好是在大片 FF FF FF 的结束部位),即可使用ctrl+V将之前复

制的46台数据粘贴进来,替换旧的数据,之后点保存即可!注意,读取后要备份好,再复制

一份进行修改,以免给修改坏了,保存后,ue软件会给你备份一个.bak文件,那个文件是

你保存前的状态,没什么用的话可以删除掉,反正你也有最原始的备份文件。

3、编辑过后的文件要与修改前备份的文件比较一下大小,分别在“备份的文件”和“编辑

后的文件”上点“右键”,点“属性”,观察字节数是否一致,不要多也不要少,方可进行

后面的“烧写”步骤!

4、芯片是“海尔2023EC” 的朋友注意了,经本人多次试验,个别芯片读出的数据

有“crc校验码”,就算只修改1个台的数据,开机也会自动搜索,或无节目 手动搜索后

照样还是原来那12个台……其特征是:在搜索“55 AA”的时候,后面的第5对数字都不是

“0c”,如下图所示↓,并且0005fff0h这一行 第9--12对 数据不是“FF FF FF FF”就说明

你的bin具有crc校验,不可轻易改动。解决方法,可以读取“全部”用下面提供的“海尔有

crc校验码.bin”这个文件来替换掉00050000h--0005fff0h这一部分数据!共65536字节……

五、烧写bin

•这一步是最激动人心的时刻,如果以上步骤都不出错,就仿佛已经摸到了成功大门的

拉手……需要注意的是,接收机在与电脑连接前要关闭电源,先运行软件,设置好后再开

接收机电源(国芯还要点那个大按钮后再开接收机电源),烧写完毕后,要先关软件,再

关接收机电源,再拔下连接线,拿去电视机上测试,与电视机连接好后,但不要接那个带

螺丝的天线插头,开电视机,调整av模式,再开接收机,虽然无信号但可以看一下台的数

量,经过30秒左右无异常,不自动搜索,则可以插上天线接头……进行最终的测试!如果

一切正常,恢复了46台,切忌日后不可进行自动搜索等操作!

1、海尔烧写,接好连接线,运行刷机软件,设置软件选择芯片型号,选择com口,

选择全部(读出并修改的是全部,这里就选择全部),“打开”选择修改好的.bin文件,

一切设置完毕后打开接收机,待状态变为“就绪”后,点“烧写”按钮即可!进度走动,

完毕后,先关软件再关机!

2、国芯烧写,同海尔差不多,先连线,然后运行软件,操作模式(Mode)要选择:

回写(Download);晶振频率(Xtal)选择:4MHx;Flash连接方式

(Flash Interface)1M储存器一般选“串口Flash(SPI-Flash)”/2M储存器一般选

“并口Flash(Parallel-Flash)”;Flash产品标识(Flash Model)请根据自己的储

存器型号选择,设置好一切

,点那个大按钮后,然后再开机,进度条走动,完毕后,先关软件,再关机。

六、复活:变砖恢复(死机恢复)

无法与电脑进行通讯,遥控器失灵,等现象的产生,其原因有二

1、下载了别人机器上的bin文件盲目烧写,由于别人的机器配置与自己的机器不同,

所以别人机器的文件也无法支配自己的机器,所以才会出现各种各样的怪毛病;

2、自己备份出来的文件不正确,也许是自己储存器的大小没有事先判断好,选择了

不正确的刷机软件,也许是在软件上的设置不正确,导致读取的文件不正确,那么在此基

础上修改的文件再次烧写回去的时候就会产生各种各样的问题……

下面以海尔芯片为例,介绍恢复方法:

•如果是5针的机器,可以在后面找到一个1.6v左右电压的针(bl针),通常是最后

一根针,将其与vcc短接,然后连接电脑,运行刷机软件,打开接收机电源,点“复位”

按钮,如果出现“就绪”,立即烧写之前备份的文件来恢复!烧写完毕后,关软件,关机

器,去掉连接线(包括短接线),拿去测试!

•有的4针机器,可以在主板上找到第5针的焊点,有标注BL(BootLoader)或vcc2

的,那个就是用来恢复用的,与vcc短接bl即可……

•如果没有5针,也没有找到bl脚的焊点,那么可以将Hi2023芯片正面对准自己(即芯

片字样正立)从芯片“左上角”向下数第13个引脚即为BL脚,该脚应与升级口输出的+5v

或+3.3v电源针短接,动手要非常的小心,Hi2023E芯片引脚非常细小,弄不好就会将焊

锡粘连到其他引脚。而有的升级口vcc为+5v以上的,这种情况就要串接限流电阻等元件,

否则芯片烧毁!

•用万用表查找过程中发现板上有个空着的JP104跳线位置,其两端正好就是2023E的

109脚(BL脚)和+3.3V,将这两点焊上,与电脑连线,运行刷机软件,开接收机电源,

点“复位”按钮,OK“就绪”了,把原机备份的文件再刷回去……刷完后,关软件、关接

收机后,一定要把短路的两点断开!

GxDownloaderIII 主要参数(中文,原文为英文)

主要]

查看= 1.00

SegNumber = 9

Seg0 =所有

段1 =引导装载

段2 =主码

Seg3 =标志

Seg4 =通用数据

Seg5 =默认UsrDB

Seg6 = UsrDB

Seg7 = SysDB

Seg8 =键

[全部]

StartAddr = 0x00000000

SegSize = 0x00200000(2M)0x00100000(1M)注意:盲目读取和烧写很有可能将你的山机变为砖头

[引导装载]

StartAddr = 0x00000000

SegSize = 0x00010000

[主码]

StartAddr = 0x00010000

SegSize = 0x00120000

[标志]

StartAddr = 0x00130000

SegSize = 0x00008000

[通用数据]

StartAddr = 0x00138000

SegSize = 0x00000800

[默认UsrDB]

StartAddr = 0x00138800

SegSize = 0x00007800

[UsrDB]

StartAddr = 0x00140000

SegSize = 0x00080000

[SysDB]

StartAddr = 0x001C0000

SegSize = 0x00020000

[关键词]

StartAddr = 0x001E0000

SegSize = 0x00020000

[配置]

的COM = 0

ChipType = 0

XTAL = 4

FlashIF = 1

PPIFlashModel = 5

SPIFlashModel = 0

SdramType = 0

SdramSize = 0

DisableEtcOpt = 0

标题= GxDownloaderIII

选项:

一般选用ALL(全部) 或key(密钥)就可以了,尽量不要用其他选项,容易造成冲突。使机器无法正常工作

需要工具可以留下邮箱,(只是工具 ,没有数据包。因为更新太快没有办法保证是最新,)

汇编语言2005—2006学年第二学期期末考试复习题及参考答案 一、 填空 1. 十进制数369转换成二进制数为()2,转换成十六进制数为()16. 2. 计算机中的指令由( )和( 地址码 )两部分组成。 3. 8086的地址总线有20根,寻址范围为( )字节。 4. 下一条将要执行的指令的地址存放在寄存器( )中。 5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。 6. 汇编语言源程序需经过()程序汇编,( )程序连接才能生成可执行文件。 7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=() 8. REP指令前缀与()指令配合使用。 9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( )和( )命令。 10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( )如果要求第0,1位变反,可使用指令( ) 11. 宏汇编适合于(),()的子功能段使用; 二、 选择题 1. 设字长N=16,有符号数7AE9H的补码表示为( ) A. 9EA7H B. 76C4H C. 8417H D. 7AE9H 2. 比较有符号数3260H与0B425H的大小关系为( ) A. 相等 B. 小于 C. 大于 D. 不能比较 3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为() A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI) 4. 在指令 MOV AX,[1000H]中,源操作数的寻址方式为() A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址 5. 中断矢量表中存放的是() A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址 6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( ) A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方 C. 距该指令偏移地址为-128~+127的地方. D. 段外 7. 能定义ASCII码字符串的数据定义语句有() A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB; 8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( ) A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1 9. 比较指令CMP( ) A. 专用于有符号数比较 B. 专用于无符号数比较 C. 专用于串比较D. 不区分比较的对象是有符号数还是无符号数 10. 数据传送指令对标志位的影响为() A.都不影响; B.都影响; C.除了SAHF,POPF,其它均不影响. D.除了控制标志位,其它均不影响 三、 判断题 ( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。 ( )32. PC机以位作最小寻址单位。 ( )33. 当SRC是立即数时,DST可以使用存储器寻址。 ( )34. 指定各个逻辑段偏移地址可以使用ORG伪指令。( )35. LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。 ( )36. POP IP ( )37. 设327FH和0BFFFH为有符号数的补码表示,则327FH <0BFFFH ( )38. 多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明( )39. MOV AX,VAR1-VAR2+100 ( )40. ADD [SI],50 四、 程序分析题 1. A DW 1234H B DW 5678H PUSH A PUSH B POP A POP B 试回答:上述程序段执行后(A)=,(B)= 2. 分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL 试问程序段执行后(BL)=(AL)=3. STRING DB ‘ABCDEFGHIJ' MOV AH,01 从键盘输入字符1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H ;显示输出 INT 21H 试回答: (1)上述程序段的功能是什么? (2)如从键盘输入字符‘4',程序段有什么结果? 4. 有如下程序: AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 上述程序运行后,试回答: (1)当(AL)=时,程序转向BRCH1 (2)当(AL)=时,程序转向BRCH2 (3)当(AL)=时,程序转向BRCH3 5. 下列程序段完成什么工作? DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?)┇ MOV CX,10 MOV BX,20 MOV SI,0 MOV DI,0 NEXT:MOV AL,DAT1〔BX〕〔SI〕 MOV DAT2〔DI〕,AL INC SI INC DI LOOP NEXT 6. 下面程序段执行完以后,AL的内容是什么? MOV BX,00FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH 7. 执行下列指令后,AX寄存器中的内容是什么? START DW 10H,20H,30H,40H,50H EE1 DW 3 ┇ MOV BX,OFFSET START ADD BX,EE1 MOV AX,〔BX〕 8. 试分析下面程序段的功能是什么? CMP AL,‘A’JC OTHERCMP AL,‘Z’+1JNC OTHERJMP LETTER┇ OTHER: ┇ LETTER: ┇ 五、 程序填空题 1. 设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H MOV PLW,BX JMP DONE K1: DONE: 2. 现有下列数据段: DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT __ __ LOOP:MOVSB __ __ LOOP LOP 或者() 六、 程序设计题 1. 编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。) 2. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。数据段如下: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS3. 试编写出把DX、AX中的双字右移四位的程序段。 4. 定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。 汇编语言2005—2006学年第二学期期末考试复习题及参考答案 一、 填空 1. 十进制数369转换成二进制数为(101110001)2,转换成十六进制数为(171)16. 2. 计算机中的指令由( 操作码 )和( 地址码 )两部分组成。 3. 8086的地址总线有20根,寻址范围为( 1M )字节。 4. 下一条将要执行的指令的地址存放在寄存器( 指令指针寄存器 )中。 5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。 6. 汇编语言源程序需经过(汇编)程序汇编,( 连接 )程序连接才能生成可执行文件。 7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=(27272H) 8. REP指令前缀与()指令配合使用。 9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( D )和( E )命令。 10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( AND AL,3F )如果要求第0,1位变反,可使用指令( XOR AL,3F ) 11. 宏汇编适合于(程序短),(参数多)的子功能段使用; 二、 选择题 1. 设字长N=16,有符号数7AE9H的补码表示为(D ) A. 9EA7H B. 76C4H C. 8417H D. 7AE9H 2. 比较有符号数3260H与0B425H的大小关系为(C ) A. 相等 B. 小于 C. 大于 D. 不能比较 3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为(A) A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI) 4. 在指令 MOV AX,[1000H]中,源操作数的寻址方式为(B) A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址 5. 中断矢量表中存放的是(D) A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址 6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( A) A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方 C. 距该指令偏移地址为-128~+127的地方. D. 段外 7. 能定义ASCII码字符串的数据定义语句有(D) A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB; 8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为(C ) A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1 9. 比较指令CMP(D ) A. 专用于有符号数比较 B. 专用于无符号数比较 C. 专用于串比较D. 不区分比较的对象是有符号数还是无符号数 10. 数据传送指令对标志位的影响为(D) A.都不影响; B.都影响; C.除了SAHF,POPF,其它均不影响. D.除了控制标志位,其它均不影响 三、 判断题 ( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。 T ( )32. PC机以位作最小寻址单位。F ( )33. 当SRC是立即数时,DST可以使用存储器寻址。F ( )34. 指定各个逻辑段偏移地址可以使用ORG伪指令。 T ( )35. LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。T ( )36. POP IP F ( )37. 设327FH和0BFFFH为有符号数的补码表示,则327FH <0BFFFHF ( )38. 多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明 T ( )39. MOV AX,VAR1-VAR2+100 F ( )40. ADD [SI],50F 四、 程序分析题 1. A DW 1234H B DW 5678H PUSH A PUSH B POP A POP B 试回答:上述程序段执行后(A)= 5678H ,(B)= 1234H 2. 分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL 试问程序段执行后(BL)= 0E4H (AL)=0DDH3. STRING DB ‘ABCDEFGHIJ' MOV AH,01 从键盘输入字符1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H ;显示输出 INT 21H 试回答: (1)上述程序段的功能是什么? 根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。 (2)如从键盘输入字符‘4',程序段有什么结果? 显示器显示字符‘D’ 4. 有如下程序: AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 上述程序运行后,试回答: (1)当(AL)=(AL)=0 时,程序转向BRCH1 (2)当(AL)=(AL)=1 时,程序转向BRCH2 (3)当(AL)=(AL)=-1 时,程序转向BRCH3 5. 下列程序段完成什么工作? 把DAT1+20存储单元开始的10个字节搬到DAT2开始的连续10个存储单元中 DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?)┇ MOV CX,10 MOV BX,20 MOV SI,0 MOV DI,0 NEXT:MOV AL,DAT1〔BX〕〔SI〕 MOV DAT2〔DI〕,AL INC SI INC DI LOOP NEXT 6. 下面程序段执行完以后,AL的内容是什么? 0F00H MOV BX,00FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH 7. 执行下列指令后,AX寄存器中的内容是什么? 3000HSTART DW 10H,20H,30H,40H,50H EE1 DW 3 ┇ MOV BX,OFFSET START ADD BX,EE1 MOV AX,〔BX〕 8. 试分析下面程序段的功能是什么? 判断AL的内容,若为‘A’~‘Z’的大写字母时,程序转LETTER处理,否则转OTHER处理 CMP AL,‘A’JC OTHERCMP AL,‘Z’+1JNC OTHERJMP LETTER┇ OTHER: ┇ LETTER: ┇ 五、 程序填空题 1. 设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H JE K1或JZ K1 MOV PLW,BX JMP DONE K1: MOV PLW,AX DONE: 2. 现有下列数据段: DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT __ CLD__ LOOP:MOVSB __ SUB SI,2__ LOOP LOP 或者(STD/ADD DI,2) 六、 程序设计题 1. 编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。) 程序段:MOV AX,0 MOV BX,OFFSET BUF MOV CX,20 LOP:ADD AX,[BX] INC BX INC BX LOOP LOP MOV SUM,AX 2. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。数据段如下: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDSSTACL1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX ┇ CALL SUBROT ┇ MOV AH,4CH INT 21H SUBROT PROC PUSH AX PUSH BX LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT NEG AL NEXT: XLAT SQRTAB MOV SQR,AL POP BX POP AX RET SUBROT ENDP CODE ENDS END SRART 3. 试编写出把DX、AX中的双字右移四位的程序段。 MOV CL,04 SHR AX,CL MOV BL,DL SHR DX,CL SHL BL,CL OR BL,AH 4. 定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。 DATA SEGMENT PATTERN DB 23H,24H,25H,26H DISPLAY DB 80 DUP(‘ ’),‘$’ DATE ENDS CODE SEGMENT┇ CLD LEA SI,PATTERN LEA DI,DISPLAY MOV CX,80 REP MOVSB MOV AH,09H LEA DX,DISPLAY INT 21H RET CODE ENDS


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/804611.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存