摘要: ARM处理器共有9中寻址方式1.寄存器寻址 操作数的值在寄存器中,指令执行时直接取出寄存器的值来操作 MOV R1,R2 ;R2->R1 SUB R0,R1,R2 ;R1-R2->R02.立即寻址 MOV R0,#0XFF00 ;0XFF00->R0SUBS R0,R0,#1 ;R0-1->R03.寄存器移位寻址MOV R0,R2,LSL #3 ;R2的值左移3位,存入R0, R0=R2*84.寄存器间接寻址LDR R1,[R2]5.基址寻址LDR R2,[R3,#0XC0] ;读取R3+0XC0地址上的数据,放入R26.多寄存器寻址LDMIA R1!,{R2-R7,R 阅读全文
posted @ 2012-07-04 14:52 nsoft 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 常用 ARM指令集及汇编 一、 ARM处理器的寻址方式 二、指令集学习 (一) ARM 指令集 1. 指令格式 2. 条件码 3. ARM 存储器访问指令 1) LDR/ STR -加载 / 存储指令 2) LDM/ STM -多寄存器加载 / 存储指令 3) SWP -寄存器和存储器交换指令 4. ARM 数据处理指令 1) 数据传送指令 a) MOV -数据传送指令 b) MVN -数据非传送指令 2) 算术逻辑运算指令 a) ADD -加法运算指令 b) SUB -减法运算指令 c) RSB- 逆向减法指令 d) ADC -带进... 阅读全文
posted @ 2012-07-04 14:51 nsoft 阅读(562) 评论(0) 推荐(0) 编辑
摘要: Windows 8基于Windows7,同时微软对其进行了性能、安全、隐私、系统可靠性等方面的改进。在硬件需求方面,Windows8与Windows7完全一样。之前也提到,除了x86和x64架构,Windows 8增加了ARM片上系统的支持。连接性与Wi-Fi和移动宽带Windows8会自动选择信号较好的网络来进行连接,也允许应用来控制自己的带宽占用。在有流量限制的网络下,Windows8会自动阻止网络连接来防止不必要的收费。Windows8改进了其Wi-Fi热点连接功能,并且会将移动宽带网络视为计量网络。用户也可以快速地控制无线信号,实现电脑的“飞行模式”。设备应用与驱动当用户连接上新的Wi 阅读全文
posted @ 2012-06-28 19:32 nsoft 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 基于Windows Embedded Standard以及Windows Embedded XP,如果需要添加语音识别,语音朗读功能,需要下列组件的支持。Speech Control Panel:添加该组件可以在控制面中添加语音控制图标,我们可以通过这个功能来选择或者配置Speech recognition(SR-语音识别)或者 text-to-speech engine(TTS-文本语音转化引擎)。 这些设置取决与可选择的语言,声音输出和声音质量, 也包括可选择的麦克风输入。 在语音属性中可以制定和更新用户配置文件。通过用户配置文件,使语音识别引擎能够更好地认识到一个发言者的习惯和在一个特定 阅读全文
posted @ 2012-06-28 19:28 nsoft 阅读(421) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;using SpeechLib;using System.Windows.Forms;namespace hbdlc@qq.com{ public class SpRecognition { public SpeechLib.ISpeechRecoGrammar isrg; public SpeechLib.SpSharedRecoContextClass ssrContex = null; public System.Window 阅读全文
posted @ 2012-06-28 19:23 nsoft 阅读(500) 评论(0) 推荐(0) 编辑
摘要: #include <windows.h>#include <sapi.h>#include <stdio.h>#include <string.h>#include <atlbase.h>#include "sphelper.h"inline HRESULT BlockForResult(ISpRecoContext * pRecoCtxt, ISpRecoResult ** ppResult){//创建语音识别 HRESULT hr = S_OK;CSpEvent event; while (SUCCEEDED( 阅读全文
posted @ 2012-06-28 19:19 nsoft 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 在Wince下获取设备ID(Device ID)并不困难,只要简单地调用KernelIoControl即可.不过至于能否获得设备ID,并且获得的ID属于什么类型,则关系到驱动层的实现.而 设备ID的实现,在不同的平台有不同,比如在夏普的LH71404的开发板中,设备ID位于platform.c中.不过本文目的不关注如何设置或编写设 备ID,而仅仅是通过函数调用获得该设备ID而已. 首先我们来看看设备ID在winCE下的定义:typedefstruct_DEVICE_ID{DWORDdwSize;DWORDdwPresetIDOffset;DWORDdwPresetIDBytes;DWORDd. 阅读全文
posted @ 2012-06-26 18:37 nsoft 阅读(474) 评论(0) 推荐(0) 编辑
摘要: malloc和realloc是C标准函数,而new是C++的关键字,三者都能动态分配内存.但其中一些有意思的细节,你注意了么? 在开篇之前,我们首先需要明确一个概念,数据存储在内存中是无针对性的,换句话说,内存里面的数据,究竟是解释为字符串还是解释为整数,甚至是一个DWORD值还是一个拥有两个WORD的数值,它都是不知道的.如何解释内存中的数据,只和指向这段内存的指针有关. 我们可以用以下代码验证:intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){#defineM... 阅读全文
posted @ 2012-06-26 18:36 nsoft 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 在WinCE平台下,使用evc或vs2005写出文字滚动的代码并不是一件难事,甚至可以说非常简单。 大体上来说,程序的失败与否取决于两个关键点: 1.准确计算文本的长度以及宽度; 2.定时刷新窗口。 现在我们来看看这两点分别有什么注意的地方。 首先是计算文本的长度。 其实要做到这点也并非难事,因为WinCE给我们一个现成的函数:GetTextExtentPoint。 函数的原型和解释如下: BOOL GetTextExtentPoint( HDC hdc, LPCTSTR lpString, int cbString, LPSIZE lpSize ); hdc [i... 阅读全文
posted @ 2012-06-26 18:34 nsoft 阅读(359) 评论(0) 推荐(0) 编辑
摘要: Lib和Dll,前者是运用于link使其,后者则于runtime起作用.按理说不该会有歧义,但偏偏微软定义DLL的调用时,又将lib给牵扯上,以 致于不少初学者会发出这样的疑问:为何我link了lib,运行时还需要Dll? 本文试图以微薄之力,以基础来解释这疑问.1.Dll Export Dll,动态链接库,从字面就知道是程序运行时才需要用上的玩意. Dll和Exe其实架构上非常相似,相同之处是两者都是二进制文件;不同的是,Exe以WinMain为函数入口点(console程序为Main),而Dll则是DllMain.除了该点,本质上Exe和Dll再无更多区别. 创建一个Dll不比一个Ex.. 阅读全文
posted @ 2012-06-26 18:32 nsoft 阅读(182) 评论(0) 推荐(0) 编辑