当前位置:文档之家› hex文件反编译成汇编语言外部中断1例子(汇编、hex、反汇编)

hex文件反编译成汇编语言外部中断1例子(汇编、hex、反汇编)

hex文件反编译成汇编语言外部中断1例子(汇编、hex、反汇编)
hex文件反编译成汇编语言外部中断1例子(汇编、hex、反汇编)

汇编程序:

ORG 0000H

LJMP MAIN

ORG 0013H

LJMP INT

ORG 0030H

MAIN: SETB EA

SETB EX1

SETB PX1

SETB IT1

MOV A, #01H

HERE: SJMP HERE

ORG 0100H

INT: MOV P1, A

RL A

RETI

END

Hex文件

:020800F3

:0C0FE4F6D8FD758

:020030CB

:020100E7

:0C003000D2AFD2AAD2BAD28A740180FEEC

:04010000F1

:00000001FF

个人解释:(其实反汇编过程不能反映真实程序要执行的过程,因为外部中断1的触发需要配合硬件电路来实现才能产生,因此单纯执行汇编程序仅仅是顺序执行,并没有触发中断响应,进而执行中断服务程序。)

对hex文件进行反编译:

;======================================================================= ===

;====Power Disassembler for MCS-51 and

6502================================

;======================================================================= ===

; Writen by: 覃远高

; Copyright: 覃远高

; HomePage: E-mail

; Tel:

; Update: ,2000

;======================================================================= ===

;===========Disassemble

information========================================

;======================================================================= ===

; File Name: C:\Users\wugaochao\Desktop\

; IC Body: MCS-51

; Date: 2016/9/13

;======================================================================= ===

;======================================================================= ===

;标号==============指令================================地址===机器码

=======

;======================================================================= ===

Q0000: LJMP Q0030 ;0000 02 00 30 ;======================================================================= ===

Q0003: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q000B: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0013: DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q001B: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0023: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q002B: DB 00H, 00H, 00H, 00H, 00H ;.....

;======================================================================= ===

Q0030: SETB EA ;0030 D2 AF

SETB EX1 ;0032 D2 AA

SETB PX1 ;0034 D2 BA

SETB IT1 ;0036 D2 8A MOV A,#01H ;0038 74 01 SJMP $ ;003A 80 FE NOP ;003C 00

NOP ;003D 00

NOP ;003E 00

NOP ;003F 00

NOP ;0040 00

NOP ;0041 00

NOP ;0042 00

NOP ;0043 00

NOP ;0044 00

NOP ;0045 00

NOP ;0046 00

NOP ;0047 00

NOP ;0048 00

NOP ;0049 00

NOP ;004A 00

NOP ;004B 00

NOP ;004C 00

NOP ;004D 00

NOP ;004E 00

NOP ;004F 00

NOP ;0050 00

NOP ;0051 00

NOP ;0052 00 NOP ;0053 00 NOP ;0054 00 NOP ;0055 00 NOP ;0056 00 NOP ;0057 00 NOP ;0058 00 NOP ;0059 00 NOP ;005A 00 NOP ;005B 00 NOP ;005C 00 NOP ;005D 00 NOP ;005E 00 NOP ;005F 00 NOP ;0060 00 NOP ;0061 00 NOP ;0062 00 NOP ;0063 00 NOP ;0064 00 NOP ;0065 00 NOP ;0066 00 NOP ;0067 00 NOP ;0068 00 NOP ;0069 00 NOP ;006A 00

NOP ;006B 00 NOP ;006C 00 NOP ;006D 00 NOP ;006E 00 NOP ;006F 00 NOP ;0070 00 NOP ;0071 00 NOP ;0072 00 NOP ;0073 00 NOP ;0074 00 NOP ;0075 00 NOP ;0076 00 NOP ;0077 00 NOP ;0078 00 NOP ;0079 00 NOP ;007A 00 NOP ;007B 00 NOP ;007C 00 NOP ;007D 00 NOP ;007E 00 NOP ;007F 00 NOP ;0080 00 NOP ;0081 00 NOP ;0082 00 NOP ;0083 00

NOP ;0084 00 NOP ;0085 00 NOP ;0086 00 NOP ;0087 00 NOP ;0088 00 NOP ;0089 00 NOP ;008A 00 NOP ;008B 00 NOP ;008C 00 NOP ;008D 00 NOP ;008E 00 NOP ;008F 00 NOP ;0090 00 NOP ;0091 00 NOP ;0092 00 NOP ;0093 00 NOP ;0094 00 NOP ;0095 00 NOP ;0096 00 NOP ;0097 00 NOP ;0098 00 NOP ;0099 00 NOP ;009A 00 NOP ;009B 00 NOP ;009C 00

NOP ;009D 00 NOP ;009E 00 NOP ;009F 00 NOP ;00A0 00 NOP ;00A1 00 NOP ;00A2 00 NOP ;00A3 00 NOP ;00A4 00 NOP ;00A5 00 NOP ;00A6 00 NOP ;00A7 00 NOP ;00A8 00 NOP ;00A9 00 NOP ;00AA 00 NOP ;00AB 00 NOP ;00AC 00 NOP ;00AD 00 NOP ;00AE 00 NOP ;00AF 00 NOP ;00B0 00 NOP ;00B1 00 NOP ;00B2 00 NOP ;00B3 00 NOP ;00B4 00 NOP ;00B5 00

NOP ;00B6 00 NOP ;00B7 00 NOP ;00B8 00 NOP ;00B9 00 NOP ;00BA 00 NOP ;00BB 00 NOP ;00BC 00 NOP ;00BD 00 NOP ;00BE 00 NOP ;00BF 00 NOP ;00C0 00 NOP ;00C1 00 NOP ;00C2 00 NOP ;00C3 00 NOP ;00C4 00 NOP ;00C5 00 NOP ;00C6 00 NOP ;00C7 00 NOP ;00C8 00 NOP ;00C9 00 NOP ;00CA 00 NOP ;00CB 00 NOP ;00CC 00 NOP ;00CD 00 NOP ;00CE 00

NOP ;00CF 00 NOP ;00D0 00 NOP ;00D1 00 NOP ;00D2 00 NOP ;00D3 00 NOP ;00D4 00 NOP ;00D5 00 NOP ;00D6 00 NOP ;00D7 00 NOP ;00D8 00 NOP ;00D9 00 NOP ;00DA 00 NOP ;00DB 00 NOP ;00DC 00 NOP ;00DD 00 NOP ;00DE 00 NOP ;00DF 00 NOP ;00E0 00 NOP ;00E1 00 NOP ;00E2 00 NOP ;00E3 00 NOP ;00E4 00 NOP ;00E5 00 NOP ;00E6 00 NOP ;00E7 00

NOP ;00E8 00

NOP ;00E9 00

NOP ;00EA 00

NOP ;00EB 00

NOP ;00EC 00

NOP ;00ED 00

NOP ;00EE 00

NOP ;00EF 00

NOP ;00F0 00

NOP ;00F1 00

NOP ;00F2 00

NOP ;00F3 00

NOP ;00F4 00

NOP ;00F5 00

NOP ;00F6 00

NOP ;00F7 00

NOP ;00F8 00

NOP ;00F9 00

NOP ;00FA 00

NOP ;00FB 00

NOP ;00FC 00

NOP ;00FD 00

NOP ;00FE 00

NOP ;00FF 00

MOV P1,A ;0100 F5 90

RL A ;0102 23

RETI ;0103 32

;======================================================================= ===

Q0104: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q010C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0114: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q011C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0124: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q012C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0134: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q013C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0144: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q014C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0154: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q015C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0164: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q016C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0174: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q017C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0184: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q018C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0194: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q019C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q01A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q01AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0204: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q020C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0214: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q021C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0224: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q022C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0234: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q023C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0244: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q024C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0254: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q025C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0264: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q026C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0274: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q027C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0284: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q028C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0294: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q029C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0304: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q030C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0314: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q031C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0324: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q032C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0334: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q033C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0344: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q034C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0354: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q035C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0364: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q036C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0374: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q037C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0384: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q038C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0394: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q039C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0404: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q040C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0414: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q041C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0424: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q042C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0434: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q043C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0444: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q044C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0454: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q045C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0464: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q046C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0474: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q047C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0484: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q048C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0494: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q049C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q04CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0504: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q050C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0514: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q051C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0524: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q052C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0534: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q053C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0544: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q054C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0554: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q055C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0564: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q056C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0574: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q057C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0584: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q058C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0594: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q059C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0604: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q060C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0614: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q061C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0624: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q062C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0634: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q063C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0644: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q064C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0654: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q065C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0664: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q066C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0674: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q067C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0684: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q068C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0694: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q069C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0704: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q070C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0714: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q071C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

Q0724: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q072C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0734: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q073C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0744: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q074C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0754: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q075C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0764: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q076C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0774: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q077C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0784: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q078C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0794: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q079C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q07E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........

王爽《汇编语言》第1章DOC版

第1章基础知识 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程。在本章中,对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。当课程进行到需要补充新的基础知识(关于编程结构或其他的)时候,再对相关的基础知识进行介绍和探讨。本书的原则是,以后用到的知识,以后再说。 在汇编课程中不对硬件系统进行全面和深入的研究,因为这不在本课程的范围之内。关于PC机及CPU物理结构和编程结构的全面研究,在《微机原理与接口》中进行;对于计算机一般的结构、功能、性能的研究在一门称为《组成原理》的理论层次更高的课程中进行。汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作。 1.1 机器语言 说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。 上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概念。现在,在常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯片就是我们常说的CPU(Central Processing Unit,中央处理单元),CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如我们最常见的PC机。 每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自已的机器指令集,也就是机器语言。 早期的程序设计均使用机器语言。程序员们将用0、1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。 应用8086CPU完成运算s=768+12288-1280,机器码如下: 101100000000000000000011 000001010000000000110000 001011010000000000000101 假如将程序错写成以下这样,请读者找出错误。 101100000000000000000011 000001010000000000110000 000101101000000000000101

汇编语言 快速入门

“哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急,让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪、调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣……;二、汇编直接与硬件打交道,如果你想搞通程序在执行时在电脑中的来龙去脉,也就是搞清电脑每个组成部分究竟在干什么、究竟怎么干?一个真正的硬件发烧友,不懂这些可不行。三、如今玩DOS的多是“高手”,如能像吾一样混入(我不是高手)“高手”内部,不仅可以从“高手”朋友那儿套些黑客级“机密”,还可以自诩“高手”尽情享受强烈的虚荣感--#$%&“醒醒!” 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指

计算机组成原理实验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.计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2.其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其他符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。 二.存储器:1.存储单元中数据和指令没任何差别。 2.存储单元:Eg:128个储存单元(0~127)128byte。 线: 1.地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3.控制总线:cpu对元器件的控制能力。越多控制力越强。 四.内存地址空间:1.由地址总线决定大小。 2.主板:cpu和核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3.接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。

4.各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控他们的时候,把他们都当作内存来对待,把他们总的看作一个由 若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作是一样的,但是在cpu,内存,芯片之间的硬件本身所牵扯的线是不同的。所以一些地址的功能是对应一些芯片的。 第二章寄存器 引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器是可以用来指令读写的部件。8086有14个寄存器(都是16位,2个存储空间)。 一.通用寄存器(ax,bx,cx,dx),16位,可以分为高低位 注意1.范围:16位的2^16-1,8位的2^8-1 2.进行数据传送或运算时要注意位数对应,否则会报错 二.字:1. 1个字==2个字节。 2. 在寄存器中的存储:0x高位字节低位字节;单元认定的是低单元 数制,16进制h,2进制b

汇编语言1加到n

实验名称——累加 实验人:班级: 学号:课程:汇编语言 目的:掌握循环程序设计与过程的设计方法 内容:求出1到n的累加 设计思想:这个程序的设计从结构上来看主要分为三部分——1,键盘输入的数字字符串(十进制数值)如何变为具有数值意义的二进制数2,利用一个循环结构将1到n的和求出3,将一个就有数值意义的二进制数转化为ASCII码并以字符串(十进制)显示出来(与计算结果的二进制数相等)。Array 否

.MODEL SMALL .STACK 1024 .DATA f1 db 'INPUT N:','$' f3 db 0dh,0ah,'error','$' p dw 0 sum dw 0 .CODE .STARTUP mov dx,offset f1 mov ah,9h ;显示字符input n: int 21h input:mov ah,1

int 21h ;显示输入字符并将字符的ascii值放入al cmp al,0dh jz next cmp al,'0' jb next1 cmp al,'9' ;判断字符的合法性 ja next1 sub al,'0' ;将ascii码转化为每一位的数值mov ah,0 push ax ;通过堆栈保护数据 mov ax,p ; shl ax,1 push ax mov cl,2 shl ax,cl ;ax的值乘以4 xor bx,bx pop bx add ax,bx xor bx,bx pop bx add ax,bx mov p,ax ;将n的二进制数值存入p中

jmp input next:mov bx,0 ;bx清零 xor ax,ax ;ax清零 mov cx,p ;循环次数存入cx中 again:inc bx add ax,bx loop again ;将n的累加求出并放入ax中 mov sum,ax ;将n的累加存入变量sum loop1:mov dx,0 ; mov bx,10 div bx add dx,'0' 将要显示的数转化为ascii码 push dx ;通过堆栈保护数据 inc cx ;记录要显示字符的个数 cmp ax,0h ;判断商是否为零 jnz loop1 mov dx,offset info2 mov ah,9 int 21h ;这三步换行显示字符 loop2:pop dx ;将要显示的字符的ascii码放入dx mov ah,2 int 21h ;dos的2号调用显示字符

实验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 汇编语言上机过程 汇编语言程序需要经过编辑、汇编、连接、调试与执行等过程才能实现其具体功能。图1-1说明了汇编语言的上机过程。 第一步:编辑 使用编辑软件创建和编写汇编语言源文件,并以 .asm 作为文件名后缀。 第二步:汇编 使用汇编程序将源程序翻译成机器码形式的文件,以 .obj 为后缀的目标程序。汇编包括把源程序翻译成目标代码,并产生中间的.OBJ文件或模块。汇编程序的任务是为数据段中的每个数据项和代码段中的每条指令计算偏移值,并在所产生的.OBJ模块的前面直接建立一个头部来存储不确定的地址信息。在汇编时可以选择产生列表文件(.LST)和交叉引用文件(.CRF)。列表文件含有出错诊断信息,可以用来帮助检查源程序中的错误。交叉引用文件在编写大型程序时可以提供指令引用的数据项列表。 第三步:连接 使用连接程序完成对于目标程序的装配工作,生成可执行程序,以.exe或者.com为后缀的执行文件。连接程序的任务包括确定由汇编程序遗留下来的不确定的地址,并把分别汇

汇编语言王爽第二版课后答案

第一章基础知识 检测点(第8页) ---------------------- (1) 13 (2) 1024,0,1023 (3) 8192,1024 (4) 2^30,2^20,2^10 (5) 64,1,16,4 (6) 1,1,2,2,4 (7) 512,256 (8) 二进制 注意: 1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方) 第二章寄存器(CPU工作原理) 检测点(第18页) ---------------------- (1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H 第二空:31A3H 第三空:3123H 第四空:6246H 第五空:826CH 第六空:6246H 第七空:826CH 第八空:04D8H 第九空:0482H 第十空:6C82H 第十一空:D882H 第十二空:D888H 第十三空:D810H 第十四空:6246H (2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点(第23页) ---------------------- (1)00010H,1000FH (2)1001H,2000H 第2题说明: 因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。 检测点(第33页) ----------------------答:CPU修改了4次IP的值。 情况如下: 第1次:执行完mov ax,bx后 第2次:执行完sub ax,ax后 第3次:读入jmp ax后 第4次:执行完jmp ax后 最后IP的值为0 实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页) ----------------------------------------------------- 1.预备知识:Debug的使用 <此部分略> 2.实验任务(第43页) (1) <此部分略> (2) <此部分略> (3) 通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。此生产日期不能被改变,因为其具有‘只读’属性。 (4) 通过向内存中的显存写入数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。<注:关于显存的详细讨论不在此题范围> 第三章寄存器(内存访问) 检测点(第52页) ---------------------- (1)(题目:略) 第一空:2662H 第二空:E626H 第三空:E626H 第四空:2662H 第五空:D6E6H 第六空:FD48H 第七空:2C14H 第八空:0000H 第九空:00E6H 第十空:0000H 第十一空:0026H 第十二空:000CH 提示:此题可在DEBUG中利用E命令在本机上按照题目中所给出的内存单元及其数据进行相应地修改,然后再用A命令进行写入(题目中所给出的)相应的汇编指令,最后再进行T命令进行逐步执行,以查看相应结果。

汇编语言实验一

淮阴工学院 汇编语言程序设计实验报告 选题名称:实验一调试工具的使用方法训练 系(院):计算机工程学院 专业:计算机科学与技术 班级: 1101 姓名:康志杰学号: 1101301132 指导教师:王福德 学年学期:2013 学年第 2 学期 2013 年 4 月15 日

实验一利用DEBUG调试程序调试程序段 <1 > 实验目的: (1)熟悉DEBUG有关命令的使用方法 (2)利用DEBUG掌握有关指令的功能 (3)利用DEBUG运行简单的程序段 <2 > 实验内容 (1)进入和退出DEBUG程序 1)开始——运行,输入cmd,点确定或回车键进入DOS环境 2)在命令窗口输入debug进入debug程序 3)进入debug程序后,按q退出

(2) 学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命 令、N命令、W命令等,也应试一下。 1 显示存储器单元命令D 格式:D [<地址范围>] 功能:显示指定地址范围内的存储区数据,包括十六进制数据形式及其对应的ASCII码字符显示。 2 写存储器单元命令E 格式:E <地址> [<字符串>] 功能:逐个修改指定单元内容或将字节串写入指定的一组连续单元。 例:将字节串′computer′写入以100H为起始地址的存储器区。 -E 100′computer′ 3显示和修改某个指定寄存器内容, 格式为:-R 寄存器名 例如打入:-R AX 系统将响应如下: AX 0000

: 表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0000 :1000 则BX内容由0000改为1000 4显示和修改标志位状态, 命令格式为:-RF 系统将给出响应,如 NV UP EI PL NZ NA PO NC- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 NV UP EI PL NZ NA PO NC-ZR CY

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

汇编语言 第七章 子程序设计

第七章子程序设计 返回目录 练习题 7.4.1 单项选择题 1.在子程序中,如果利用堆栈保护现场,在恢复现场时,先压入堆栈的内容()。 A.先弹出堆栈 B.后弹出堆栈 C.不分先后弹出堆栈 D.任意弹出堆栈 2.下列叙述不正确的是()。 A.在子程序中的现场保护只能用堆栈来实现。 B.在子程序中的现场保护用堆栈来实现是其中的一种方法。 C.在子程序中的现场保护可以有多种实现方法。 D.在子程序中的现场保护可以将要保护的内容送内存变量来实现。 3.下列定义子程序的是()。 A. PNAME PROC B. PNAME PROC …

… PNAME ENDS ENDM C. PNAME PROC D. PNAME PROC … … PNAME ENDP PNAME END 4.子程序重定位可选在内存中的整个区域内,在进行程序 设计时,子程序应采用()。 A.绝对地址 B.相对地址 C.逻辑地址 D.物理地址 5.下列叙述不正确的是()。 A.在子程序中可以再次调用子程序。 B.在主程序中一般用跳转指令转移到子程序。 C.在子程序中一般用返回指令返回到主程序。 D.在主程序中一般用调用指令转移到子程序。 6.下列叙述正确的是()。 A.执行一条段内返回指令,先从堆栈弹出两个字节 的内容,然后SP指针减2。 B.执行一条段内返回指令,先SP指针减2,然后从

堆栈弹出两个字节的内容。 C.执行一条段内返回指令,先SP指针加2,然后从堆栈弹出两个字节的内容。 D.执行一条段内返回指令,先从堆栈弹出两个字节的内容,然后SP指针加2。 7.下列叙述正确的是()。 A.执行一条段间调用指令,先将CS、IP的内容压栈,然后将目的地址送CS和IP。 B.执行一条段间调用指令,先将目的地址送CS和IP,然后将CS、IP的内容压栈。 C.执行一条段间调用指令,先将CS、IP的内容压栈,然后SP指针加2。 D.执行一条段间调用指令,先将CS、IP的内容压栈,然后SP指针减2。 8.下列叙述不正确的是()。 A.在汇编语言程序中,每一个过程允许有多条RET 指令。 B.在汇编语言程序中,每一个过程只允许出现一条RET指令。 C.在汇编语言程序中,每一个过程结束之前一定有一条RET指令。 D.在汇编语言程序中,以过程形式表示的代码段一

汇编语言第1-2章考前复习题

1. 知识点:0202(基于微处理器的计算机系统构成) 在下列的选项中,能够组成计算机系统的是(A )。选项A)硬件系统和软件系统 选项B)CPU、存储器、输入/输出设备 选项C)操作系统、各种语言 选项D)系统软件和应用软件 2. 知识点:01 (基础知识) 汇编语言属于(B) 选项A)用户软件 选项B)系统软件 选项C)高级语言 选项D)机器语言 5知识点:0203(中央处理机) 中央处理器CPU是由(D)组成的 选项A)运算器 选项B)控制器 选项C)寄存器组 选项D)前三者 答案:D 6. 知识点:0201(80x86微处理器) IBM PC机的DOS是属于(B)。 选项A)用户软件

选项B)系统软件 选项C)系统硬件 选项D)一种语言 8. 知识点:0203(中央处理机) 8086/8088 CPU的寄存器组中,8位的寄存器共有(C)个 选项A)4 选项B)6 选项C)8(al ah bl bhcl chdl dh) 选项D)10 9. 知识点:0203(中央处理机) 8086/8088 CPU的寄存器组中,16位的寄存器共有(D)个。 AX,BX,CX,DX,DS,CS,SS,ES,FS,GS,DI,SI,BP,SP 选项A)10 选项B)12 选项C)13 选项D)14 10. 知识点:0204(存储器) 8086/8088 CPU执行算术运算时PSW共有(C)个标志位会受影响。SF,ZF,PF,CF,OF,AF 选项A)4 选项B)5 选项C)6

11. 知识点:0204(存储器) 在程序执行过程中,IP寄存器始终保存的是(C)。选项A)上一条指令的首地址 选项B)本条指令的首地址 选项C)下一条指令的首地址 选项D)需计算有效地址后才能确定地址 12. 知识点:0204(存储器) IBM PC机的存储器可分(D)个段。 选项A)4 选项B)256 选项C)512 选项D)65536 13知识点:0204(存储器) 当使用BP作编程地址时,此时使用的是(D)段。选项A)CS 选项B)DS 选项C)ES 选项D)SS(堆栈段) 17知识点:0204(存储器) 存储器的一个字节表示( A)位。 选项A)8

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

汇编语言实验(1)

课程名称汇编语言与微机原理实验名称字符串显示实验 实验目的、要求 1.掌握汇编语言程序设计的编写链接调试运行的完整过程 2.掌握利用masm.exe、link.exe等进行汇编、连接的方法及执行目的程序的方法。 3.初步认识ASCII码 4.初步认识利用DOS系统功能调用显示字符与字符串的方法 5.认识汇编源程序结构(框架)。 实验原理 利用DOS的中断调用在屏幕上显示字符串”Hello World”。 主要设备 计算机一台汇编语言软件 实验步骤及原始数据记录 程序源代码 1.显示数据区中的字符串"Hello World" assume cs:code,ds:data,ss:stack stack segment stack dw 256 dup (0) stack ends data segment msg db 'Hello World!',0dh,0ah,$ data ends code segment start: mov ax,data mov ds,ax mov ah,09h mov dx,offset msg int 21h exit: mov ah,4ch int 21h code ends end start

四、操作步骤: 1.在C盘生成一个新文件夹,例如P1,在该文件夹中拷入masm.exe、link.exe、debug.exe等工具程序 2.打开记事本,将上面第1个程序复制生成纯文本文件,文件名以.asm为扩展名。例如:A1.ASM。(注意保存时要选择保存类型为“所有文件”)。 3.从“开始”→程序→附件→命令提示符,进入DOS命令界面。 4. 使用CD命令,进入新文件夹,例如:P1,命令为:CD C:\P1 5. 执行MASM <文件名>,对源程序进行编译。 6. 执行LINK.EXE <文件名>,连接生成执行程序。例如:LINK A1 7. 执行生成的程序,记录屏幕响应的情况。例如:A1 可以不带扩展名EXE。程序运行正常的话,应该要显示字符串"Hello World!"。 实验结果 程序运行之后,屏幕上显示字符串“Hello World”。 闲来无聊,想重新学习一下汇编,第一个helloworld,想起绝影的一句话"你们学高级语言,但是高级语言会变,我学低级语言,学了永远也不会变!" - -b stack segment stack ; 定义堆栈段 db 100 dup(?) ;堆栈段长100字节, 这里db就是字节的意思,如果是用dw就是字,100 dup(?) 中的dup是重复的意思,这句话是重复100遍,一遍定义一个字节,每个字节里全填0 stack ends ; 堆栈段结束 data segment ;数据段 szHello db 'hello,world',0dh,0ah,'$' ;定义szHello , 0dh,0ah分别是回车键,换行键的ASCII码, '$'是DOS功能调用INT 21H中9号功能要求的要显示字符串的结束标志,写成szHello db

汇编语言指令

汇编语言指令集 数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作数压入或取出堆栈 语法: PUSH 操作数POP 操作数 格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA 功能: 堆栈指令群 格式: PUSHF POPF PUSHA POPA LEA,LDS,LES 功能: 取地址至寄存器 语法: LEA r,m LDS r,m LES r,m XLAT(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,O SUB,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,O INC,DEC 功能: 把OP的值加一或减一 语法: INC OP DEC OP 格式: INC r/m DEC r/m 影响标志: P,A,Z,S,O NEG 功能: 将OP的符号反相(取二进制补码) 语法: NEG OP 格式: NEG r/m 影响标志: C,P,A,Z,S,O MUL,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/m CBW,CWD 功能: 有符号数扩展指令 语法: CBW CWD AAA,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,O ROR,ROL,RCR,RCL

单片机汇编语言实验教程(1).

本文由zaoangy贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 实验一熟悉MCS-51寻址方式及传送类指令 一.实验目的: 1.熟悉uVision2集成调试环境 2.熟悉 MCS-51寻址方式及传送类指令二.uVision2集成调试环境的使用uVision2是德国Keil Software公司用于多种嵌入式微处理器的一个理想、快速、 可靠的程序调试器。此调试器包含一个高速模拟器,能够让你模拟整个8051 系统,包括片上外围.....器件和外部硬件。 1.创建项目uVision2是以项目来管理你的任务,它可以使你的8051应用系统设计变得简单。要创建一个应用,你需要按下列步骤进行操作:①第一次使用,首先为我们编写的实验程序在D盘上新建一个文件夹D:\单片机实验;②启动uVision2,新建一个项目文件并从器件库中选择一个器件,操作步骤如下:直接在桌面上点击uVision2程序图标就可以启动它。要新建一个项目文件,从uVision 2的Project菜单中选择New Project,这将打开一个标准的Windows对话框,此对话框要求你输入项目文件名,例如为实验一新建项目:D:\单片机实验\ex1.vu2。紧接着,Select Device for Target,即为你的项目选择一个CPU。我们选择Gene ric下的8032。 2.新建一个源文件你可以用菜单选项File-New来新建一个源文件。这将打开一个空的编辑窗口让你输入你的源代码。编辑后,我们把我们的实验程序保存为D:\单片机实验\dpj1.asm。 3.将你的源文件加入到你的项目中在你的P roject Workspace窗口双击Target1及Suorce Group1,将你的目标系统一直展开到看到源文件组,如图1(a所示。右击Suorce Group1,出现Add files选项, 选择它可打开一个标准的文件对话框,从对话框中选择你刚刚生成的文件dpj1.asm 。 (a (b

第七章汇编语言程序设计-微机原理练习题.

第七章汇编语言程序设计 一、选择 1.把若干个模块连接起来成为可执行文件的系统程序是( A.汇编程序 B.机器语言程序 C.连接程序 D.源代码程序 2.把若干个模块连接起来成为可执行文件的系统程序是( A汇编程序 B连接程序 C机器语言程序 D源代码程序 3.在下列伪指令中定义字节变量的是( 。 A.DB B.DW C.DD D.DT 4.编写分支程序,进行条件判断前,可用指令构成条件,其中不能形成条件的指令有 ( 。 A、CMP B、SUB

C、AND D、MOV 5.为了使执行串操作指令时,地址按增量方式处理应使用指令( A. CLI B. STI C. CLD D. STD 6.使汇编程序执行某种操作的命令是( A变量 B指令 C伪指令 D宏指令 7.使用DOS功能调用时,功能号应放在___寄存器中。 D. AX DL A. AH B. BL C. 8.标号是对指令所在地址取的名字,所用的标识符必须遵循一定的规则,下列所列标识符 格式正确的是_________。

A. A/B: B: ?: C: GAMA$1: D: NUM@-1: 9.在debug工具软件中,查看汇编指令的命令是。 (A -a (B –t (C -r (D -u 10.使汇编程序执行某种操作,并且汇编后不产生机器目标代码的命令是。 A变量 B指令 C伪指令 D宏指令 二、填空 1.堆栈的工作方式是。(A先进后出 (B后进后出 (C先进先出 2.汇编语言上机一般包括编辑、________、连接、运行调试等四个步骤。 3.数据定义伪指令的功能是 __________, 通常使用的数据定义伪指令是 _________。 4.指令语句与伪指令不同,指令语句在汇编时被翻译为 ___ 指令。 5.使用DOS功能调用在屏幕上显示’?’的正确指令是___________、 _________、INT 21H。 6.段定义伪指令语句用_____语句表示开始,以______语句表示结束。 四、简答题 1.写出下列名词的中文含义:MDR,NMI,BIU,DS,ISR,SP 2.简述汇编程序中向量和标号的区别。 3.在微机上调试完成汇编软件,通常要经过哪四个步骤?

汇编语言1-3章答案

///第一章. 习题 1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001b=171h (2) 10000=10 0111 0001 0000b=2710h (3) 4095=1111 1111 1111b=fffh (4) 32767=111 1111 1111 1111b=7fffh 1.2 将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101b=2dh=45 (2) 1000 0000b=80h=128 (3) 1111 1111 1111 1111b=ffffh=65535 (4) 1111 1111b=ffh=255 1.3 将下列十六进制数转换为二进制数和十进制数: (1) fa (2) 5b (3) fffe (4) 1234 答:(1) fah=1111 1010b=250 (2) 5bh=101 1011b=91 (3) fffeh=1111 1111 1111 1110b=65534 (4) 1234h=1 0010 0011 0100b=4660 1.4 完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3a+b7 (2) 1234+af (3) abcd-fe (4) 7ab×6f 答:(1) 3a+b7h=f1h=241 (2) 1234+afh=12e3h=4835 (3) abcd-feh=aacfh=43727 (4) 7ab×6fh=35325h=217893 1.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011b+0100 1100b=1111 0111b=0f7h;cf=0;of=0 (2) 85+(-76)=0101 0101b+1011 0100b=0000 1001b=09h;cf=1;of=0 (3) 85-76=0101 0101b-0100 1100b=0101 0101b+1011 0100b=0000 1001b=09h;cf=0;of=0 (4) 85-(-76)=0101 0101b-1011 0100b=0101 0101b+0100 1100b=10100001b=0a1h;cf=0;of=1 (5) (-85)-76=1010 1011b-0100 1100b=1010 1011b+1011 0100b=0101 1111b=5fh;cf=0;of=1 (6) -85-(-76)=1010 1011b-1011 0100b=1010 1011b+0100 1100b=11110111b=0f7h;cf=0;of=0 1.6 下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么? (1) d8 (2) ff 答:(1) d8h表示的带符号数为-40,d8h表示的无符号数为216; (2) ffh表示的带符号数为-1,ffh表示的无符号数为255。 1.7 下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ascii码时,它们所表示的十进制数及字符是什么? (1) 4f (2) 2b (3) 73 (4) 59 答:(1) 4fh表示的十进制数为79,4fh表示的字符为o; (2) 2bh表示的十进制数为43,2bh表示的字符为+; (3) 73h表示的十进制数为115,73h表示的字符为s;

相关主题
文本预览
相关文档 最新文档