2_汇编指令实验1
实验1_认识汇编语言

实验一 认识汇编语言1.1 实验目的(1)理解汇编语言的概念及其与高级语言的区别(2)了解MASM6.11和TASM软件包的安装及配置(3)了解常用汇编语言集成环境(4)掌握汇编语言程序的上机过程1.2 预备知识1.2.1 系统环境对汇编语言的初学者来说,DOS环境的优点是:DOS操作系统简单,程序员可以管理系统的所有资源,访问和修改系统中的所有内存(包括内存控制块、中断向量表),直接对I/O端口进行读写,便于对知识的学习和理解。
其缺点是:单任务的DOS操作系统只有一个运行级别,任何进程与DOS操作系统都是同等级别的,致使系统中各个进程会相互影响。
如果某个进程死机,整个系统就会瘫痪。
但是DOS系统已经退出历史舞台,目前的学生只熟悉Windows环境而对DOS知之甚少,继续要求学生在DOS系统的命令行界面下编写和调试程序,无疑存在巨大的困难。
目前,IBM PC及其兼容机配置的Intel系列微处理器可以工作在实模式、保护模式和虚拟86三种模式下。
实模式是汇编语言入门的基础,是汇编语言教学中无法跨越的阶段。
了解实模式是理解内存分段式管理和寻址方式的基础。
保护模式是Windows系统的工作模式,虚拟86模式则是在保护模式下提供的模拟8086处理器工作的模式,为学习汇编语言提供了便利。
DOS汇编程序在Win32环境中运行时,操作系统会模拟实模式运行16位进程。
对于一些可能会影响整个操作系统工作的指令,windows操作系统会拒绝执行。
64位的Windows 环境则不提供16位应用的虚拟环境。
因此,采用Win32环境进行汇编语言程序的编辑工作,在虚拟控制台环境中学习(汇编、连接和调试)汇编语言是最佳方案。
下面我们将逐步给大家讲解如何安装和配置汇编语言的编译调试环境,并选择适合的编辑软件来组建汇编语言的集成环境。
最后,叙述如何使用Visual Studio 2008 Express作为汇编语言的工作环境。
1.2.2 汇编语言上机过程汇编语言程序需要经过编辑、汇编、连接、调试与执行等过程才能实现其具体功能。
基于arm的汇编实验报告

竭诚为您提供优质文档/双击可除基于arm的汇编实验报告篇一:汇编实验报告实验一(1)熟悉汇编语言程序调试环境及顺序程序设计一、实验目的及要求:1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用eDIT、mAsm、LInK、Debug等软件工具。
3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、熟悉汇编语言程序调试环境1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为Abc。
DATAsegmenTbuFDb23h,16h,08h,20h,64h,8Ah,91h,35h,2bh,7Fh cneQu$-buFDATAenDscoDesegmenTAssumecs:coDe,Ds:DATAsTART:pushDsxoRAx,AxpushAxmoVAx,DATAmoVDs,AxmoVbx,oFFseTbuFmoVcx,cnDeccxmoVAL,[bx]IncbxLp:cmpAL,[bx]JbenexTmoVAL,[bx]nexT:IncbxDeccxJnZLpmoVAh,4chInT21hcoDeenDsenDsTART键入以下命令:c:\>eDITAbc.Asm此时屏幕的显示状态如图1所示。
1图1用eDIT编辑Abc.Asm程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,mAsm汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.obJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在Dos状态下,采用宏汇编程序mAsm 对源程序文件进行汇编,其操作过程如图2所示。
重庆工商大学嵌入式实验考试题目答案

一、汇编指令实验一:(实验1~3无法调试结果但是基本上是正确的)(1)使用LDR 指令读取0x40003100上的数据,将数据加2 ,若结果小于20则使用STR 指令把结果写回原地址,若结果大于等于20,则把0 写回原地址。
然后再次读取0x40003100上的数据,将数据加2 ,判断结果是否小于20……周而复始循环FunLDR R0 , #0x40003100ADD R0 , #2CMP R0 , #20MOVGE R0 , #0STRLT R0 , #0x40003100B Fun二、汇编指令实验二:(1 )使用MOV和MVN指令访问ARM通用寄存器。
(2 )使用ADD、SUB 、AND、ORR、CMP、TST 等指令完成数据加减运算及逻辑运算。
(1)、(2)这个很简单就按照相应的操作(如:MOV和MVN) 的语法格式就行三、汇编指令实验三:(任选两题作答)(1 )使用ARM汇编指令实现if 条件执行, for 循环结构, while循环结构和while循环结构。
If条件执行:MOV R0 , 0 #R0初始化为0CMP R0 , 0 #比较R0与0的大小MOVEQ R0 , 1 #如果R0等于0 则修改R0为1For循环结构:MOV R5 , 10MOV R1 , #0 #求和MOV R2 , #1 #循环变量FORCMP R5 , R2 #进入for循环先判断BEQ ENDADD R1 , R1 ,R2ADD R2 , R2 ,#1B FORENDDo……while循环结构MOV R5 , 10MOV R1 , #0 #求和MOV R2 , #1 #循环变量DOWHILEADD R1 , R1 ,R2ADD R2 , R2 ,#1CMP R5 , R2 #do_while循环先执行后判断BEQ ENDB DOWHILEENDWhile循环结构MOV R5 , 10MOV R1 , #0 #求和MOV R2 , #1 #循环变量WHILECMP R5 , R2 #进入while循环的时候先判断BEQ ENDADD R1 , R1 ,R2ADD R2 , R2 ,#1B WHILEEND四、c语言程序实验:C 程序使用加法运算来计算1+2+3+...+(99-1)+100的值。
2020-2021学年高一下学期化学人教版必修2实验汇编(1)元素周期律探究实验

2020-2021学年高一化学人教版必修2实验汇编(1)元素周期律探究实验学校:___________姓名:___________班级:___________考号:___________一、单选题1.通过下列实验可以比较出卤素单质氧化性的强弱。
下列说法错误的是( )A.4CCl 起到萃取、富集2I 的作用 B.a 中下层无色,说明转化为I -C.步骤Ⅱ中发生反应的离子方程式为22Br 2I I 2Br --++D.依据a 、b 中现象,可以证明2Cl 的氧化性比2Br 强二、填空题2.某同学为探究元素周期表中元素性质的递变规律,设计了如下系列实验。
Ⅰ.(1)将钠、钾、镁、铝各1 mol 分别投入到足量的同浓度的盐酸中,试预测实验结果:________________与盐酸反应最剧烈,____________与盐酸反应产生的气体最多。
(2)向2Na S 溶液中通入氯气出现黄色浑浊,可证明非金属性:Cl____________S(填“>”或“<”),反应的离子方程式为__________________。
Ⅱ.利用如图装置可验证同主族元素非金属性的变化规律。
(3)仪器A 的名称为____________,干燥管D 的作用为____________________。
(4)若要证明非金属性:Cl>I ,C 中为淀粉—碘化钾混合溶液,B 中装有4KMnO 固体,则A 中试剂为______________________,观察到C 中溶液________________(填现象),即可证明。
从环境保护的观点考虑,此装置缺少尾气处理装置,可用___________________溶液吸收尾气。
(5)若要证明非金属性:C>Si ,则在A 中加盐酸,B 中加3CaCO ,C 中加23Na SiO 溶液。
观察到C 中溶液________________(填现象),即可证明。
但有的同学认为盐酸具有挥发性,HCl 可进入C 中干扰实验,应在两装置间添加装有____________溶液的洗气瓶除去。
汇编指令1

汇编语言指令集一、数据传输指令1. 通用数据传送指令.MOV(MOVe) 传送字或字节.MOVS(MOVe String) 串传送指令MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器里字节的顺序XCHG (eXCHanG)交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )XADD先交换再累加.( 结果在第一个操作数里)XLAT(TRANSLATE) 字节查表转换.── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL )2. 输入输出端口传送指令.IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器)输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时,其范围是0-65535.3. 目的地址传送指令.LEA (Load Effective Address)装入有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS (Load DS with pointer)传送目标指针,把指针内容装入DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES (Load ES with pointer)传送目标指针,把指针内容装入ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送目标指针,把指针内容装入FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送目标指针,把指针内容装入GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送目标指针,把指针内容装入SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF (Load AH with Flags)标志寄存器传送,把标志装入AH.SAHF (Store AH into Flgs)标志寄存器传送,把AH内容装入标志寄存器.PUSHF (PUSH the Flags)标志入栈.POPF (POP the Flags)标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.二、算术运算指令───────────────────────────────────────ADD 加法.ADC 带进位加法.INC 加1.AAA 加法的ASCII码调整.非压缩的BCD码加法十进制调整指令DAA 加法的十进制调整.压缩的BCD码加法十进制调整指令SUB (SUBtract)减法.SBB (SuVtrach with borrow)带借位减法.DEC (DECrement)减1.NEC (NEGate)求反(以0 减之).CMP (CoMPare)比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.非压缩的BCD码加法十进制调整指令DAS 减法的十进制调整.压缩的BCD码减法十进制调整指令MUL (unsinged MULtiple)无符号乘法.IMUL (sIgned MUL tiple)整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM 乘法的ASCII码调整.DIV (unsigned DIVide)无符号除法.IDIV (sIgned DIVide)整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW (Count Byte to Word)字节转换为字. (把AL中字节的符号扩展到AH中去)CWD (Count Word to Doble word)字转换为双字. (把AX中的字的符号扩展到DX中去) CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令───────────────────────────────────────AND 与运算.or 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL (SHift logical Letf)逻辑左移.SAL 算术左移.(=SHL)SHR (SHift logical Right)逻辑右移.SAR 算术右移.(=SHR)ROL (Rotate Left )循环左移.ROR (Rotate Right)循环右移.RCL (Rotate Left through Carry)通过进位的循环左移.RCR (Rotate Right through Carry)通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时, 可直接用操作码. 如SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL四、串指令───────────────────────────────────────DS:SI 源串段寄存器:源串变址.ES:DI 目标串段寄存器:目标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志0表示重复操作中SI和DI应自动增量; 1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS (CoMPare String)串比较.( CMPSB 比较字符. CMPSW 比较字. )SCAS (SCAn String)串扫描指令.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS 装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )STOS (STOre into String)保存串.是LODS的逆过程.REP (REPeat)当CX/ECX<>0时重复.REPE/REPZ (REPeat while Equal/Zero)当ZF=1或比较结果相等,且CX/ECX<>0时重复. REPNE/REPNZ (REPeat while Not Equal/Zero)当ZF=0或比较结果不相等,CX/ECX<>0时重复. REPC 当CF=1且CX/ECX<>0时重复.REPNC 当CF=0且CX/ECX<>0时重复.五、程序转移指令───────────────────────────────────────1>无条件转移指令(长转移)JMP 无条件转移指令CALL 过程调用RET/RETF过程返回.2>条件转移指令(短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不小于或不等于时转移.JAE/JNB 大于或等于转移.JB/JNAE 小于转移.JBE/JNA 小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE 大于转移.JGE/JNL 大于或等于转移.JL/JNGE 小于转移.JLE/JNG 小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC 无进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为"0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为"1" 时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT 中断指令INTO 溢出中断IRET 中断返回5>处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯片引线TEST为高电平时使CPU进入等待状态. ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD (SeT Direction flag)置方向标志位.CLD (CLear Direction flag)清方向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令───────────────────────────────────────DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建立段寄存器寻址.ENDS 段结束.END 程序结束.8088 汇编跳转cmp a,b 比较a与bmov a,b 把b的值送给aret 返回主程序nop 无作用,英文“no operation”的简写,意思是“do nothing” call 调用子程序je 或jz 若相等则跳jne或jnz 若不相等则跳jmp 无条件跳jb 若小于则跳ja 若大于则跳jg 若大于则跳jge 若大于等于则跳jl 若小于则跳jle 若小于等于则跳pop 出栈push 压栈MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataXCHG功能: 交换两个操作数的数据语法: XCHG格式: XCHG r1,r2 XCHG m,r XCHG r,mPUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPALEA,LDS,LES功能: 取地址至寄存器语法: LEA r,m LDS r,m LES r,mXLAT(XLATB)功能: 查表指令语法: XLAT XLAT m算数运算指令ADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,Z,S,OSUB,SBB功能:减法指令语法: SUB OP1,OP2 SBB OP1,OP2格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data影响标志: C,P,A,Z,S,OINC,DEC功能: 把OP的值加一或减一语法: INC OP DEC OP格式: INC r/m DEC r/m影响标志: P,A,Z,S,ONEG功能: 将OP的符号反相(取二进制补码)语法: NEG OP格式: NEG r/m影响标志: C,P,A,Z,S,OMUL,IMUL功能: 乘法指令语法: MUL OP IMUL OP格式: MUL r/m IMUL r/m影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)DIV,IDIV功能:除法指令语法: DIV OP IDIV OP格式: DIV r/m IDIV r/mCBW,CWD功能: 有符号数扩展指令语法: CBW CWDAAA,AAS,AAM,AAD功能: 非压BCD码运算调整指令语法: AAA AAS AAM AAD影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)DAA,DAS功能: 压缩BCD码调整指令语法: DAA DAS影响标志: C,P,A,Z,S位运算指令集AND,OR,XOR,NOT,TEST功能: 执行BIT与BIT之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位SHR,SHL,SAR,SAL功能: 移位指令语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL 影响标志: C,P,Z,S,OROR,ROL,RCR,RCL功能: 循环移位指令语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL 影响标志: C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能: 设定进位标志语法: CLC STC CMC标志位: CCLD,STD功能: 设定方向标志语法: CLD STD标志位: DCLI,STI功能: 设定中断标志语法: CLI STI标志位: ICMP功能: 比较OP1与OP2的值语法: CMP r/m,r/m/data标志位: C,P,A,Z,OJMP功能: 跳往指定地址执行语法: JMP 地址JXX功能: 当特定条件成立则跳往指定地址执行语法: JXX 地址注:A: ABOVE,当C=0,Z=0时成立B: BELOW,当C=1时成立C: CARRY,当弁时成立CXZ: CX寄存器的值为0(ZERO)时成立E: EQUAL,当Z=1时成立G: GREATER(大于),当Z=0且S=0时成立L: LESS(小于),当S不为零时成立N: NOT(相反条件),需和其它符号配合使用O: OVERFLOW,O=1时成立P: PARITY,P=1时成立PE: PARITY EVEN,P=1时成立PO: PARITY ODD,P=0时成立S: SIGN,S=1时成立Z: ZERO,Z=1时成立LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址RET RET n标志位: 无INT,IRET功能: 中断调用及返回指令语法: INT n IRET标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器字符串操作指令集MOVSB,MOVSW,MOVSD功能: 字符串传送指令语法: MOVSB MOVSW MOVSD标志位: 无CMPSB,CMPSW,CMPSD功能: 字符串比较指令语法: CMPSB CMPSW CMPSD标志位: C,P,Z,S,OSCASB,SCASW功能: 字符串搜索指令语法: SCASB SCASW标志位: C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能: 字符串载入或存贮指令语法: LODSB LODSW STOSB STOSW标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令S REPE 指令S REPNE 指令S标志位: 依指令S而定。
计算机组成原理实验1-汇编语言实验

微处理器与接口技术实验指导实验一监控程序与汇编语言程序设计实验一、实验要求1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。
2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。
3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。
4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。
善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。
二、实验目的【1】学习和了解TEC-XP16教学实验系统监控命令的用法;【2】学习和了解TEC-XP16教学实验系统的指令系统;【3】学习简单的TEC-XP16教学实验系统汇编程序设计。
三、实验注意事项(一)实验箱检查【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。
【2】五位控制开关的功能示意图如下:【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】(二)软件操作注意事项【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。
即选定的是用户实验时通讯线接的PC机的端口;【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试;【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试;【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。
(三)联机通讯失败自检如果上述的硬件和软件的操作都正确,联机却依旧失败,可以进行如下测试:【1】测试PC机的串口是否能正常工作,或是换一台PC或换同一台PC的另一个串口再试,在换串口时要将TEC-XP16实验系统断电,换完后重新启动实验系统和软件;【2】检查机器上的元器件插接是否正确(建议用户对照能够正常通讯的实验系统进行详细检查),有没有被学生动过,尤其是扩展内存和扩展I/O接口时,芯片方向是否插对,片选信号有没有连接;【3】检查相应的短路子是否连接正确;【4】建议教师预留一台运行正常的TEC-XP16实验系统备用,机器出问题后可以对照检查。
汇编语言 王爽_完整答案

第1章基础知识检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。
(2)1KB的存储器有1024个存储单元。
存储单元的编号从0到1023。
(3)1KB的存储器可以存储1024*8个bit,1024个Byte。
(4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。
(n^m的意思是n的m次幂)(5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。
(8)在存储器中,数据和程序以二进制形式存放。
第2章寄存器答案检测点2.1(1) 写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX=F4A3Hmov ah,31H AX=31A3Hmov al,23H AX=3123Hadd ax,ax AX=6246Hmov bx,826CH BX=826CHmov cx,ax CX=6246Hmov ax,bx AX=826CHadd ax,bx AX=04D8Hmov al,bh AX=0482Hmov ah,bl AX=6C82Hadd ah,ah AX=D882Hadd al,6 AX=D888Hadd al,al AX=D810Hmov ax,cx AX=6246H(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。
汇编语言第1次实验报告:DEBUG命令及汇编编程工具的使用

3熟悉汇编语言编程工具的使用。
实验环境
1X86系列桌面系统;
2UltraEdit-32、TASM、TLINK、TD。
实验内容
1用r命令观察寄存器及各标志位:
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
四川大学计算机学院、软件学院
实验报告
学生姓名
夏超
学号
1143041054
班级
113040115
学生专业
计算机科学与技术
学院
计算机学院
课程名称
汇编语言程序设计(第1次实验)
实验时间
2012年10月9日
实验项目
DEBUG常用命令实践及编程初步
报告撰写时间
2012年10月9日
实验目的
1学习DEBUG常用命令,掌握观察寄存器和内存单元的方法;
DS=13AE ES=13AE SS=13AE CS=13AE IP=0100 NV UP EI PL NZ NA PO NC
用d命令观察内存
观察200h单元的内容15h及所在段的段基址13AEh;
计算该单元的物理地址:13CEh;
用不同的段基址和偏移量观察上述物理地址的内容:
13CE:00;
13BE:100;
>anyshow;
4用集成编程工具编译、连接和执行AnyShow.asm。
小结
这次实验课让我认识到计算机的一些很基础的知识,加深了对编译语言和编译原理的理解,也了解到了一些基本的编译语言的基本指令,提升了对编译语言的兴趣,对编译语言的实际用途有了更深的了解。
计算机组成原理实验补充实验指导-实验1、2

实验一、实验箱介绍与DEBUG简单使用一、实验目的1)了解实验箱的构成2)掌握模型机的结构框图3)学会DEBUG的简单使用二、实验内容1.实验箱介绍图1-1 计算机组成原理实验箱图1-1给出了实验箱的结构图,构成部分均在实验箱的印刷电路板上标注,如:ALU Uint(算逻单元)、Input Device Unit(输入单元)、Switch Unit(控制开关单元)、Bus Unit(总线单元)……,同学们要结合计算机的组成原理,确定运算器、控制器、存储器、输入设备、输出设备等在实验箱中的位置。
2.模型机的框图图1-2 模型机框图图1-2给出了计算机模型机的框图,同学们在做实验时,要体会实验中数据的流向,以便对整机有一个完整的认识。
3.DEBUG的简单使用DEBUG须在DOS环境下运行。
具体操作可以在Windows操作系统的“开始”菜单的“运行”对话框中输入“CMD”(命令command)如图1-3所示。
图1-3 Windows的运行窗口Windows的“DOS”模式,如图1-4所示。
图1-4 Windows下的“DOS”模式输入命令DEBUG(调试),见图1-5.图1-5 DEBUG调试窗口DEBUG命令是在“-”下,由键盘键入的。
每条命令以单字母命令符开头,然后是命令的操作参数,操作参数与命令符之间用空格隔开,操作参数与操作参数之间用空格或逗号隔开,命令的结束符是回车键。
命令及参数的输入可以是大小写的结合。
Ctrl+Break键可中止命令的执行。
Ctrl+Num Lock键可暂停屏幕卷动,按任一键继续。
所用数均为十六进制数,不用加H。
有关DEBUG中的D(显示)、R(寄存器)、U(反汇编)、G(执行)和Q(退出)等命令已在前面讲过了。
下面介绍本实验用到的DEBUG的命令:(1)A-汇编,用于输入汇编语言源程序(2)g-运行,运行用A命令编写的汇编语言程序(3)e-编辑,用于修改计算机内存中存储单位的数据(4)d-显示,用于显示计算机内存中存储单位的数据(5)q-退出,用于退出DEBUG的状态,到DOS提示符下。
指令系统和汇编语言程序设计实验报告

指令系统和汇编语⾔程序设计实验报告指令系统和汇编语⾔程序设计实验报告姓名:XXX班级:XXXXXXX学号:0000003.2 指令系统实验实验⼀熟悉键盘操作及数传指令编程设计⼀、实验⽬的1.熟悉软件模拟调试的环境及键盘操作。
2.掌握汇编语⾔程序设计的⽅法,加深对指令的理解。
3.学会软件模拟调试和察看修改观察项的⽅法。
⼆、实验内容印证数据传送指令的功能、寻址⽅式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问⽅式。
三、实验步骤1.进⼊调试软件环境,输⼊源程序;2.汇编源程序;3.⽤单步⽅式运⾏程序;4.检查并记录各寄存器和存储单元内容的变化。
四、程序清单及实验结果1.内部RAM数据传送1)寄存器寻址与⽴即寻址,需要查看的数据有A、PSW和不同寄存器区的Rn等单元的内容。
ORG 0000HMOV PSW,#00HMOV R0,#30HMOV A,R0MOV R6,AMOV PSW,#14HMOV R0,#30HMOV A,R0MOV R6,AMOV PSW,#10HMOV R6,AMOV PSW,#08HMOV R0,#30HMOV A,R0MOV R6,ASJMP $数据记录:2) 直接寻址,需查看30H、31H、32H、40H、ACC、PSW等单元的内容。
ORG 0100H MOV 30H,#45HMOV 31H,#46HMOV 02H,31HMOV 0E0H,30HMOV 32H,ACCMOV ACC,PSWMOV 40H,ACCSJMP $END数据记录:3)寄存器间接寻址,需查看@R0、RO等的内容。
SJMP $END数据记录:2.外部数据传送需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。
ORG 0000HMOV A,#89HMOV DPTR,#2000HMOVX @DPTR,AINC DPTRCLR AMOVC A,@A+DPTRSJMP $ORG 2000HDB 44HDB 78HDB 67HEND数据记录:3.堆栈操作需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执⾏后1)可⽤于保护现场和恢复现场的程序ORG 0000HMOV A,#12HPUSH 50HPUSH 51HPUSH ACCPOP 0E0HPOP 51HPOP 50HSJMP $END数据记录:2)可⽤于数据交换的程序ORG 0100HMOV SP,#6FHMOV 50H,#3BHMOV 51H,#2FH PUSH 50HPUSH 51HPOP 50HPOP 51HSJMP $数据记录:4.数据交换记录每条指令运⾏后的结果,从⽽加深对各种不同的交换指令的理解。
实验一汇编语言上机及Debug调试

实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
汇编语言程序设计的实验环境及上机步骤

汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1.硬件环境微型计算机(Intel x86系列CPU)一台2.软件环境⏹Windows98/2000/XP操作系统⏹任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)⏹汇编程序(MASM.EXE或TASM.EXE)⏹连接程序(LINK.EXE或TLINK.EXE)⏹调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。
二、上机实验步骤注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“ C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。
图1 文本编辑器EDIT的编辑窗口窗口标题行显示了EDIT程序的完整路径名。
紧接着标题行下面的是菜单行,窗口最下面一行是提示行。
菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
实验一 ADS集成开发环境及汇编语言指令实验

实验一 ADS集成开发环境及汇编语言指令实验1.1 实验目的1.熟悉ADS1.2 软件开发环境;2.理解ARM920T 汇编指令的用法,并能编写简单的汇编程序;3.理解常用的ARM伪指令和伪操作的功能和使用。
1.2 实验内容1.使用LDR 指令读取0x30003100 上的数据,将数据加1,若结果小于10,则使用STR 指令把结果写回原地址,若结果大于等于10,则把0 写回原地址。
2.使用ADS1.2 软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0,R1 的值,打开存储器观察窗口(Memory)监视0x30003100 上的值。
3.使用数据定义伪操作定义两个内存数据块,通过汇编指令将源数据块的内容复制到目的数据块,并对程序运行时相关寄存器、内存中的数据进行跟踪。
1.3 预备知识1.ARM 指令系统内容;2.ADS1.2 工程编辑和AXD 调试的内容。
1.4 实验设备硬件:PC 机一台。
软件:Windows XP系统,ADS1.2 集成开发环境。
1.5 实验步骤1.启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程arm1.mcp。
2.建立汇编源文件arm1.s,编写实验程序(见1.6实验参考程序1),然后添加到工程中。
3.设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置options 中的调试口地址Image entry point 为0x30000000。
设置方法:选择Edit->DebugRel Settings,打开下图所示的窗口:图1.1 DebugRel Settings窗口在左侧树形目录中选择“ARM Linker”,分别在右侧Output标签页和Option标签页中设置RO Base、RW Base和Image entry point。
实验一 汇编语言程序设计EMU8086基础实验

实验一汇编语言程序设计EMU8086基础实验1、实验目的和要求:了解使用EMU8086(8086汇编模拟工具)学习汇编的方法。
2、实验内容:编写汇编程序,计算2010H+2011H,并把和存入RESULT单元。
8086汇编模拟工具,结合了一个先进的原始编辑器、汇编器、反汇编器、具除错功能的软体模拟工具(虚拟 PC),还有一个循序渐进的指导工具。
这对刚开始学汇编语言的人会是一个很有用的工具。
它会在模拟器中一步一步的编译程式码并执行,视觉化的工作环境让它更容易使用。
你可以在程式执行当中检视暂存器、标志以及内存。
模拟器会在虚拟 PC 中执行程式,这可以隔绝你的程式,避免它去存取实际硬体,像硬盘、内存,而在虚拟机器上执行汇编程序,这可以让除错变得更加容易。
3、实验仪器与器材:计算机及EMU8086汇编软件等。
4、实验原理:自己总结5、实验过程与测试数据(含电路图/程序框图):A、打开EMU8086 v4.08软件,新建工程,选EXE模板,清屏,编写8086程序代码。
B、保存程序代码为*.asm文件,编译保存为可执行文件.exe,编译保存没有错误则模拟运行。
如果有错误返回修改。
运行有单步运行、全速运行等。
实验一参考程序DATA SEGMENTX DW 2010HY DW 2011HRESULT DW ?DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AX,XADD AX,YMOV RESULT,AXRETMAIN ENDPCODE ENDSEND START6、实验分析:自己分析7、实验体会自己总结。
实验五汇编语言程序设计实验(一)

实验五汇编语言程序设计实验(一)一、实验目的1、了解和掌握汇编语言子程序和主程序的设计。
2、掌握循环程序的设计。
3、掌握汇编语言主程序与子程序的调用和参数传递。
4、进一步熟悉在PC机上建立,汇编,链接,调试和运行8086、8088汇编语言程序的过程。
二、实验内容1、复习汇编语言源程序的上机过程:2、编写一个完整程序(包含循环设计和子程序设计)在以strg为首地址的缓冲区中存放着1个字符串,以-1作为结束标志,编程统计字符串长度,并将结果存入lenth单元。
要求统计字符串用子程序完成。
data segmentstrg db ‘abcd’,-1lenth dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,strgcall scountmov lenth,bxmov ah,4chint 21hscount proc nearpush sixor bx,bxmov si,dxnext:cmp byte ptr[si],-1jz overinc bxinc sijmp nextover:pop siretscount endpcode endsend start三、实验器材IBM PC 微机一台四、实验要求1、正确理解本次实验的目的,内容和原理。
2、能编写相应的程序五、实验报告要求完成下面任务:从键盘输入1个长度小于100的字符串,存入以buff 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。
写出操作步骤,程序清单,程序注释,实验现象。
微机原理-实验一-汇编语言-冒泡排序

微机原理实验报告班级:XXXXX姓名:XXXX学号:20XXXXXXXXX大学信息科学与技术学院信息工程系实验一汇编语言程序设计-(具体题目)一、实验目的(根据实际情况修改):1、熟悉MASM编译环境,了解程序的汇编方法;2、熟悉常用汇编指令,学习汇编程序设计方法;3、学习汇编语言的调试过程,通过调试过程认识CPU执行程序的方式;4、了解冒泡法原理,学习多重循环的编程方法。
二、实验内容:编写程序,用冒泡法实现将数据段内9,8,7,6,5,4,3,2,1按照由小到大的顺序重新排列。
三、程序流程图和程序代码1、流程图2、代码与注释(代码不能和指导书完全一样,写出注释,写出寄存器尤其是DS的值)data segmentbuf1 db 8,7,6,5,4,3,2,1data endscode segmentassume cs:code,ds:datastart: mov ax,data //传送数据段datamov ds,axmov dx,7 //dx放外循环7次L3: mov cx,dx //cx放内循环7次lea si,buf1 //将db里的数据传送到siL2: mov al,[si]cmp al,[si+1] //比较[si]与[si+1]jb L1 //[si]<[si+1],跳转到L1xchg al,[si+1] //[si]>[si+1],两两交换mov [si],alL1: inc si //si减1loop L2 //循环L2dec dx //外循环减1,没减到0则跳转到L3 jnz L3 //入内循环,计数初值mov ah,4chint 21hcode endsend start四、调试过程及遇到的问题1、程序执行截图2、调试用到的命令-U命令:查看数据段地址;-d命令:查看运行前后存储器内容;-g命令:运行程序;-t命令:查看运行前后寄存器和存储器内容。
3、遇到的问题及解决办法问题:运行程序后,数据1在存储器地址末尾没变。
实验1 ARM 指令实验

2012-5-17
深圳市优龙科技有限公司
数据处理指令 数据处理指令可分为数据传送指令、算术逻 辑运算指令和比较指令等。 数据传送指令用于在寄存器和存储器之间进 行数据的双向传输。 算术逻辑运算指令完成常用的算术与逻辑的 运算,该类指令不但将运算结果保存在目的寄 存器中,同时更新CPSR中的相应条件标志位。 比较指令不保存运算结果,只更新CPSR中 相应的条件标志位。
加载/存储指令 加载 存储指令 ARM微处理器支持加载/存储指令用于在寄存器和存 储器之间传送数据,加载指令用于将存储器中的数据传 送到寄存器,存储指令则完成相反的操作。 常用的加载存储指令如下: ------ LDR 字数据加载指令 ------LDRB 字节数据加载指令 ------LDRH 半字数据加载指令 ------STR 字数据存储指令 ------STRB 字节数据存储指令 ------STRH 半字数据存储指令 在本实验中主要用到了LDR和STR指令,下面将介 绍这两条指令的用法:
2012-5-17 深圳市优龙科技有限公司
上面是关于该实验涉及到的部分函数,完整的 代码请看光盘目录的exp文件夹下相应实验的工程 目录。 1.7 练习题 编写一个汇编代码,让LED灯D13不停的闪烁, 同时可以通过调节延迟时间来控制D13闪烁的频率。
2012-5-17
深圳市优龙科技有限公司
2012-5-17 深圳市优龙科技有限公司
1.6 ARM汇编程序编程实例 汇编程序编程实例 1.参考汇编代码程序 参考汇编代码程序,主要实现LED灯D14的不停 闪烁的功能,主要代码如下: ;汇编指令实验 ;定义端口E寄存器预定义 rGPFCON EQU 0x56000050 rGPFDAT EQU 0x56000054 rGPFUP EQU 0x56000058 AREA Init,CODE,READONLY ;该伪指令 定义了一个代码段,段名为Init,属性只读 ENTRY ;程序的入口点标识 ResetEntry
汇编语言编程实验报告

汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。
)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。
4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。
如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。
一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。
将包含QE文件的工作磁盘插入驱动器A:。
进入QEA\QE进入全屏幕后可以开始编程。
文件名取为Myprog。
asm;Ddisplystring (09H)CODESEGMENTPUBLICASSUME CS:CODE,DS:CODEORG 100HSTART:JMP BEGINMSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display messageMOV DS,AXMOV DX,OFFSET,SG ;set up to display messageMOV AH,09H;display string function requestINT 21H ;call DOSMOV AH ,4CH ;terminate propram funct requestINT 21H ;Call DOSCODE ENDS;end of code segmentEND START;strat is the entry point输入完毕后,按ALT---X,存盘返回DOS3、汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。
汇编语言实验1用机器指令和汇编指令编程

汇编语⾔实验1⽤机器指令和汇编指令编程实验1 ⽤机器指令和汇编指令编程⼀、实验⽬的1. 熟练掌握使⽤debug⼯具编写和调试x86汇编命令的⽅法2. 掌握8086CPU、寄存器、内存的基础知识3. 理解并掌握内存中多字节数据的存放:⼩端法4. 理解并掌握「栈」内存空间的特性和使⽤5. 掌握指令mov, add, sub, jmp, push, pop的基础⽤法⼆、实验内容1. 教材实验1(P35)2. 教材实验2(P71)为了便于验证实验结果,对「2. 实验任务」的(1)做如下两点调整:3. 在使⽤ a 命令输⼊指令调试之前,先使⽤ e 命令将内存单元 0022:0 ~0022:7连续 8 个字节数据修改为 50H, 51H, 52H, 53H, 54H, 55H, 56H, 57H4. 将 P74 实验任务(1)中第1⾏的 mov ax, ffff →改为 mov ax, 0022三、实验结论1. 教材实验1结论实验任务(1)1. 采⽤e命令从0:200内存开始写⼊4⾏命令的机器码,并⽤d命令进⾏查看,可以看到写⼊成功。
由于t命令为执⾏CS:IP指向内存单元处命令,需要⽤r命令将CS:IP置为0:200。
2. 再次使⽤r命令查看寄存器,可以看到CS:IP已经指向0:200,下⼀条命令与输⼊命令⼀致。
使⽤4次t命令,可以看到调试结果。
3. 采⽤a命令直接输⼊指令。
a命令在不带参数的情况下默认从CS:IP开始输⼊,因此不需要设置CS:IP的值。
4. ⽤d命令可以看到输⼊成功。
5. 再次使⽤r命令查看寄存器,可以看到下⼀条命令与输⼊的第⼀条命令⼀致。
使⽤4次t命令,可以看到调试结果。
实验任务(2)1. 采⽤a命令向2000:0输⼊指令。
2. 使⽤d命令和u命令可以看到输⼊成功。
3. 观察代码可以发现,该段代码为循环对ax做乘2运算,因此控制好运⾏次数即可得到2的8次⽅。
⽤r命令可以看到CS:IP不为2000:0,调整后开始调试:4. 重复8次add运算,最终得到2的8次⽅为1000H(即ax的值)实验任务(3)1. 使⽤d命令查看内存FFFOOH~FFFFFH中的内容2. 可以从右侧的ASCII码预览中看到最后⼀⾏有01/01/92的字样,推测为⽣产⽇期。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编指令实验1 汇编指令实验1
1.实验目的
了解ADS 1.2集成开发环境及ARMulator软件仿真方 1.2集成开发环境及 集成开发环境及ARMulator软件仿真 软件仿真方 法; 掌握ARM7TDMI汇编指令的用法, ARM7TDMI汇编指令的用法 掌握ARM7TDMI汇编指令的用法,并能编写简单的汇 编程序; 编程序 掌握指令的条件执行和使用LDR/STR LDR/STR指令完成存储器 掌握指令的条件执行和使用LDR/STR指令完成存储器 的访问. 的访问.
使用LDR 指令读取0 40003100上的数据 将数据加1 使用 LDR 指令读取 0x40003100 上的数据 , 将数据加 1 , LDR指令读取 上的数据, 若结果小于10则使用STR指令把结果写回原地址, 10则使用STR指令把结果写回原地址 若结果小于 10 则使用STR 指令把结果写回原地址, 若结 果大于等于10 则把0写回原地址……周而复此循环; 10, ……周而复此循环 果大于等于10,则把0写回原地址……周而复此循环; 使用ADS 软件仿真,单步,全速运行程序, 使用ADS 1.2软件仿真,单步,全速运行程序,设置 断点,打开寄存器窗口(Processor Registers)监视 监视R 断点 , 打开寄存器窗口 (Processor Registers) 监视 R0 , R1 的 值 , 打 开 存 储 器 观 察 窗 口 (Memory) 监 视 40003100上的值 上的值. 0x40003100上的值.
广州致远电子有限公司
MagicARM2410教学实验开发平台
2.实验设备
硬件: 硬件: PC机 PC机 软件: 软件: 98/2000/XP操作系统 Windows 98/2000/XP操作系统 ADS 1.2集成开发环境 1台
广州致远电子有限公司
MagicARM2410教学实验开发平台
3.实验内容
广州致远电子有限公司
MagicARM2410教学实验开发平台
4.实验预习要求
仔细阅读参考文献[ 仔细阅读参考文献[1]第5章ARM指令集的内容; ARM指令集的内容; 指令集的内容 仔细阅读光盘"ADS集成开发环境及 集成开发环境及JTAG仿真器应 仔细阅读光盘"ADS集成开发环境及JTAG仿真器应 pdf"或其它ADS相关资料,了解ADS工程编辑和AXD ADS相关资料 ADS工程编辑和AXD调 用.pdf"或其它ADS相关资料,了解ADS工程编辑和AXD调 试的内容. 本实验使用软件仿真) 试的内容.(本实验使用软件仿真)
广州致远电子有限公司
MagicARM2410教学实验开发平台
5.实验步骤
(6) 打开存储器观察窗口 (Memory) 设置观察地址为 打开存储器观察窗口(Memory) 40003100. 0x40003100.
广州致远电子有限公司
MagicARM2410教学实验开发平台
5.实验步骤
(7) 单步运行程序,可以设置/取消断点,或者全速运 单步运行程序,可以设置/取消断点, 行程序,停止程序运行,调试时观察寄存器和 40003100地址上的值 地址上的值. 0x40003100地址上的值.
参考文献 1. 田泽等译.ARM SOC体系结构.北京航空航天大学出版社,2002年.
广州致远电子有限公司
ቤተ መጻሕፍቲ ባይዱ
MagicARM2410教学实验开发平台
5.实验步骤
(1) 启动ADS 1.2,使用ARM Executable Image工程模 启动ADS 使用ARM Image工程模 板建立一个工程Instruction Instruction1 板建立一个工程Instruction1. 建立汇编源文件TEST TEST2 编写实验程序, (2) 建立汇编源文件TEST2.S,编写实验程序,然后添 加到工程中. 加到工程中. (3) 设 置 工 程 链 接 地 址 RO Base 为 0x40000000 , RW 设置调 Base 为 0x40003000 . 设 置调 试 入 口地 址 Image entry point为 40000000. point为0x40000000. 编译链接工程,选择【Project】 Debug】 (4) 编译链接工程,选择【Project】->【Debug】, 启动AXD进行软件仿真调试. AXD进行软件仿真调试 启动AXD进行软件仿真调试. 打开寄存器窗口(Processor Registers), (5) 打开寄存器窗口(Processor Registers),选择 Current项监视各寄存器的值 项监视各寄存器的值. Current项监视各寄存器的值.
(提示:选择【File】->【Reload Current Image】重新加载映象文件) Image】重新加载映象文件) 提示:选择【File】
广州致远电子有限公司
�
广州致远电子有限公司
MagicARM2410教学实验开发平台
6.思考题
LDR伪指令与LDR加载指令的功能和应用有何区别 LDR 伪指令与LDR 加载指令的功能和应用有何区别, 伪指令与LDR加载指令的功能和应用有何区别, 举例说明? 举例说明? LDR/STR指令的前索引偏移指令如何编写 指令的前索引偏移指令如何编写? LDR/STR指令的前索引偏移指令如何编写?指令是怎 样操作的? 样操作的? AXD调试时如何复位程序 调试时如何复位程序? 在AXD调试时如何复位程序?