Microsoft PowerPoint - CH3_3.ppt [只读] [兼容模式]

Similar documents
,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

untitled

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

幻灯片 1


(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H:

第5章:汇编语言程序设计

幻灯片 1

微型计算机原理及应用试题 机电96

学习MSP430单片机推荐参考书

DPJJX1.DOC

2006年国家公务员招录考试行测真题(A)

第四章 8086汇编语言程序设计

Microsoft PowerPoint - C15_LECTURE_NOTE_06

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft PowerPoint - C15_LECTURE_NOTE_06

第三章 宏汇编语言程序设计

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

Microsoft Word - 实验8_ADDA.doc

組譯與連結(Ver6

:23:13 solo estoy( ) 老 师 SIMD 技 术 ALU 同 时 处 理 的 数 据 长 度 只 能 是 ALU 最 大 位 数 的 整 数 分 之 一 对 吗 :25:16 solo estoy( )

Ps22Pdf

目 录

<4D F736F F D C4EAB9FABCD2B9ABCEF1D4B1D0D0D5FEC4DCC1A6B2E2D1E9A3A841C0E0A3A92E646F63>

06721 main() lock pick proc() restart() [2][4] MINIX minix2.0 GDT, IDT irq table[] CPU CPU CPU CPU (IDTR) idt[] CPU _hwint00:! Interrupt

instructions.PDF

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

微机第02章1(指令寻址)

Microsoft PowerPoint - os_4.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

untitled

1 TPIS TPIS 2 2

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

Microsoft Word - 98地球科學專科題庫ok.doc

<4D F736F F D C4EAC6D5CDA8B8DFB5C8D1A7D0A3D5D0C9FAC8ABB9FACDB3D2BBBFBCCAD4CEC4BFC6D7DBBACDCAD4BEEDBCB0B4F0B0B82DD6D8C7ECBEED2E646F63>

4.2 DOS 系统功能调用和 BIOS 中断调用 概述 磁盘操作系统 DOS 采用模块化 层次化结构, 其层次结构如图所示 2015 年 4 月 13 日星期一 7 时 45 分 11 秒 2

<4D F736F F F696E74202D DB5DAB0CBBDB22DBBE3B1E0D3EFD1D4B3CCD0F22E >

标题

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

Microsoft Word - 選擇_無解答2_.doc

CC213

微處理機期末專題

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

. v dx v d () () l s dl s d (_) d () v s v s () a dv a d (_) ( ) ( ) x- = v- = = v 0 = m/s a = = m/s 2 a- = ( ) x- v- a- Page 2 of 20

习 题 一

主要内容 : 汇编语言源程序的结构汇编语言语句格式伪指令语句功能调用汇编语言程序设计方法宏汇编和条件汇编 2015 年 3 月 30 日星期一 7 时 58 分 57 秒 2

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

欧洲标准胀紧套

Microsoft PowerPoint - CH3_1.ppt [兼容模式]

一、填空题

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

Microsoft Word - 实验4_IO控制_INT.doc

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

,,,,,,,,,,,,, :,, ;,,,,, ( ),,,, : ( ) ; ( ) ; ( ) ( ) ; ( ) ( A ) ; ( ) ( ),,,,,,, 80

七 報 名 資 格 : ( 一 ) 具 中 華 民 國 國 籍, 年 滿 15 歲 以 上, 領 有 身 心 障 礙 手 冊 或 身 心 障 礙 證 明 者 ( 依 據 身 心 障 礙 者 權 益 保 障 法 及 身 心 障 礙 者 鑑 定 作 業 辦 法 規 定 所 開 立 之 舊 式 手 冊 或


单片机原理及应用实验指导书.doc

教育部高等学校教学

Chapter12 Derived Classes

今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单, 新加了个区段放病毒执行代码, 执行病毒代码, 最后跳回原入口点来执行原文件 下面就是感染后的代码的简单分析 : ; =============== S U B R O U T I N E =====================

bingdian001.com

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Create By PageManager

2011国家司法考试试题(试卷一)

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

51 C 51 isp 10 C PCB C C C C KEIL

378高雄市都市計畫說明書

校园之星

Create By PageManager

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

(Microsoft Word - \246D\252k\267\247\255n_\275\306\277\357_.docx)

第5章修改稿



MSP430 MSP430 F149 MSP430F149 P USART MSP430F PWM 63#

微机原理与接口技术 郭玉洁

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

逢 甲 大 學

untitled

FY.DOC

1 CPU


, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

Ps22Pdf

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

(譯本)

作 業 系 統 簡 介 光 有 電 腦 硬 體, 會 不 容 易 使 用 必 須 要 有 適 當 的 程 式, 才 方 便 操 作 硬 體 衍 生 作 業 系 統 需 求 : 提 供 方 便 使 用 者 執 行 程 式 平 台 有 效 使 用 各 種 電 腦 硬 體 資 源 Jingo C. Lia


中 公 金 融 人 简 介... 2 一 中 国 农 业 银 行 风 貌 介 绍... 3 二 中 国 农 业 银 行 秋 季 招 聘 政 策 解 读 三 2014 农 业 银 行 秋 季 校 园 招 聘 笔 试 备 考 策 略 中 公 金 融 人 精 品 课 程 介 绍..

标题

Andes Technology PPT Temp

大学计算机基础B.doc

Are You suprised ?

Transcription:

第三章汇编语言程序设计 ( 三 ) Assembly Language Programming(3) 格式 # 伪指令 # DOS/BIOS 调用 ( 简单了解 ) 重点 : 数据结构表示 程序结构 变量 指针 程序流控制 ( 条件 分支 循环 ) 程序设计方法 ----- 程序设计举例 微机系统与接口东南大学 1

DATA 汇编语言程序举例 (1) 分块传送 SEGMENT STRG DB 256 DUP(1,2,3), MS-DOS 程序 STG1 EQU STRG+7 ; 可变源串首址 STG2 EQU STRG+27 ; 可变目标首址 STRSE EQU 50 ; 串长 DATA ENDS SSTACK SEGMENT STACK DB 256 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA MAIN:. MOV AX,DATA MOV DS,AX 微机系统与接口东南大学 2

OK: 程序举例 (1) 分块传送 ( 续一 ) MOV ES,AX MOV CX,STRSE; MOV SI,OFFSET STG1; 源串首址 MOV DI,OFFSET STG2; 目标首址 CLD ; 增量方式 PUSH SI ADD SI,STRSE-1 STRSE ;SI= 源串末址 CMP SI,DI STAG1 POP SI STAG1+STRSE JL OK ; 不重叠 STAG2 STD ; 重叠, 按减量 ADD SI,STRSE-1 ; 指向串末 ADD DI,STRSE-1 REP MOVSB STRSE 微机系统与接口东南大学 3

程序举例 (1) 分块传送 ( 续二 ) MOV AX,4C00H INT 21H CODE ENDS END MAIN ; 返回 DOS 分析建模 数据块传送 : 一般情况 P204 微机系统与接口东南大学 4

程序举例 (1) 分块传送 ( 通用子程序 ) 通用子程序结构功能 = 串移动 ENTRY: DS:SI= SI 源串首址 ES:DI= 目标首址 --> 考虑物理地址关系普遍适用 CX= 串长 数据块传送 : 一般情况 微机系统与接口东南大学 5

程序举例 (1) 分块传送 ( 通用子程序 ) BLKMOV PROC PUSH DS PUSH ES PUSH AX PUSH BX PUSH DX PUSH CX MOV AX,SI MOV CL,4 SAR AX,CL ; 右移 4 位 MOV DX,DS ADD AX,DS MOV DS,AX AND SI,0FH 微机系统与接口东南大学 6

程序举例 (1) 分块传送 ( 通用子程序 ) MOV BX,DI SAR BX,CL ; 右移 4 位 MOV DX,ES ADD BX,DX MOV ES,BX AND DI,0FH CMP AX,BX ; 比较 SRC/DST 起始地址高 16 位 JA MOVDOWN; 从低往高 JB MOVUP CMP SI,DI; 高 16 位相等, 比低 4 位 JA MOVUP JB MOVDOWN 微机系统与接口东南大学 7

程序举例 (1) 分块传送 ( 通用子程序 ) POP CX ; 相等, 不移动 JMP MOVEXIT MOVUP: STD POP CX MOV AX,CX DEC AX ADD SI,AX ADD DI,AX JMP DOMOV MOVDOWN: CLD POP CX DOMOV: REPMOVSB MOVEXIT: POP. ;? 子程序保护 RET BLKMOV ENDP 微机系统与接口东南大学 8

程序设计举例 (2) 循环软件延时 多重循环 : 例 软件延时 (nt,t=210ns) SOFTDLY PROC MOV BL,10 ; 4T DELAY0: MOV CX,2801; 4T DELAY1: LOOP DELAY1; 17T/5T DEC BL ;3T JNZ DELAY ;16T/4T RET ;20T SOFTDLY ENDP n=4+10*(4+2801*17-12)+3+16)-12 12)+3+16) 12 +20 -->10ms 微机系统与接口东南大学 9

程序设计举例 ( 三 ) 查表波形发生 DAINDEX DB 0;? 波形发生 DOTNUM DB DATIME-$-1 DAVALUE DB 0,40H,80H,0C0H 0C0H DB 255,0C0H,80H,40H; 三角波 DATIME DW 100 DACTRL PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,SEG DAVALUE MOV DS,AX MOV CL,DOTNUM LEA SI,DAVALUE INC SI 微机系统与接口东南大学 10

程序设计举例 ( 三 ) 查表波形发生 ( 续一 ) MOV DAINDEX,0 DALOOP: MOV AL, DAINDEX CMP AL, DOTNUM JC DACYCLE XOR AL, AL MOV DAINDEX, AL; 复位计数 DACYCLE: CALL DAOUT INC SI INC DAINDEX CALL DELAY DACTRL ENDP CALL KBINPUT ; 读键盘 CMP AL,1BH; ESC 键按下, 结束 JNZ DALOOP RET 微机系统与接口东南大学 11

程序设计举例 ( 三 ) 查表波形发生 ( 续二 ) DAOUT PROC; 查表输出 LEA SI,DAVLUE XOR AH,AH ADD SI,AX MOV AL,[SI] MOV DX, DAPORT; DAC 端口 OUT DX,AL RET DAOUT ENDP 微机系统与接口东南大学 12

术语 程序设计举例四 模块化过程 / 子程序调用与参数传递 嵌套递归可重入可重定位 参数传递 1 寄存器 2 数据单元变量( 内存, 含指针变量 )( 全局 ) 3 堆栈 微机系统与接口东南大学 13

程序设计举例 过程调用与参数传递 START: MOV AX,DATA MOV DS, AX LEA BX,ARRAY PUSH BX LEA BX,COUNT PUSH BX LEA BX,SUM PUSH BX CALL PRO_ADD : ;ADD SP,6 堆栈段 调用后 SP 运行前 SP +8 断点 IP 断点 CS OFFSET SUM OFFSET COUNT OFFSET ARRAY int BLKCHEK(*sum:int, *count:int, *array:char); C 微机系统与接口东南大学 14

程序设计举例 过程调用与参数传递 ( 续 ) PRO_ADD PROC FAR PUSH AX PUSH BX PUSH CX PUSH BP MOV BP, SP MOV BX, [BP+14]; MOV CX, [BX] ;count +8 MOV BX,[BP+12]; SUM 指针 MOV BX,[BP+16] MOV AX,0 断点处 BP 断点处 CX 断点处 BX 断点处 AX 微机系统与接口东南大学 15

程序设计举例 过程调用与参数传递 ( 续 ) LP: ADD AX,[SI] INC SI INC SI LOOP LP MOV [BX], AX POP BP POP CX POP BX POP AX RET 6 +8 断点 BP 断点 CX 断点 BX 断点 AX 微机系统与接口东南大学 16

C 语言函数 ( 课外作业选做 : 观察汇编程序 ) #include <stdio.h> /* 程序 2 */ int T_calc(int,int); int main() { int a=20,b=100,c; T_calc(a,b); return 0; } int T_calc(int a,int b) {intc; c=a+b; return c; } TCC B ms Iinclude -Llib myprog.c 微机系统与接口东南大学 17

过程 / 子程序 模块化 : 调用与参数传递 计算 N!(N<=8 WORD; N<=12 DWORD); MOV AX, N MOV CX, AX DEC CX LP: MUL CX LOOP CX MOV RESULT,AX RESULT DW? 循环方式 ; 计算 微机系统与接口东南大学 18

过程 / 子程序调用 -- 递归 计算 N!(N<=8 WORD; N<=12 DWORD); 思考 : 如 N>12 如何处理 MOV AX, N CALL PCALC MOV RESULT,AX RET RESULT DW? ; 计算 课外选做 : 观察堆栈变化 数据流和程序流 微机系统与接口东南大学 19

递归调用 ( 续 ) PCALC: PCALC1: CMP AX,1 ; 递归函数 JNZ PCALC1 RET PUSH AX DEC AX CALL PCALC ; 递归调用 POP BX MUL BX RET 微机系统与接口东南大学 20

C 语言函数 ( 课外作业选做 : 观察汇编程序 ) 程序 1 hello.c #include <stdio.h> int main() { } printf("hello, world\n"); return 0; TCC -B -ms -Iinclude -Llib hll hello.c 微机系统与接口东南大学 21

Hello World 与系统调用 DATA SEGMENT szhello DB Hello,World!,0dh,0ah, $ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AH,9 MOV DX,OFFSET szhello INT 21H MOV AH,4CH INT 21H 用户堆栈 SSTACK SEGMENT CODE ENDS END START STACK DB 256 DUP(?) SSTACK ENDS 微机系统与接口东南大学 22

MS-Visual Studio--VC++ 获取 ASM XXX.COD 文件 微机系统与接口东南大学 23

汇编程序设计举例五 -- 控制台 (Console) 输入输出及转换 控制台 (Console) 输入 / 输出 数据转换 1 直接 I/O 2 OS 功能调用 (DOS/BIOS) 3 API 函数 Windows/TD/User Screen 键盘 / 鼠标 微机系统与接口东南大学 24

概念和使用 BIOS/MS-DOS(P174-204) 功能调用 DOS 和 BIOS 调用 (Disk OS---Basic I&O system) 两组系统服务程序 OS 与 MS-DOS, MS-DOS 备 / 作业管理 --- 资源管理 OS: 处理机 / 存储 / 文件 / 设 硬件裸机 :BIOS-DOS- 高级语言 硬件控制 : 直接 IO-BIOS-DOS- 高级语言 移植性 : 直接 IO BIOS DOS 高级语言 关键 :DOS 与设备无关 ----BIOS 与设备相关 应用 : 系统功能调用 --- 软中断 PC MS-DOS---BIOS INT XXH 微机系统与接口东南大学 25

. 系统功能 BIOS/DOS (P174-204) 功能调用 86PC:4 种中断 :NMI, INTR, 内部中断 软中断向量中断技术 0-3FFH 中断向量表 0~255 中断号对应中断例程入口 INT n INT 10H~1FH ROM-BIOS I/O 控制程序物理地址 0F000 起始 INT 20~3FH DOS 中断 INT 40H~FFH 自由中断区 P449-458 附录 3.2 和 3.33 常用 :09/0AH 字符串输出 / 输入 01/02H 单字符输入 / 输出 ( 带回显 ) 微机系统与接口东南大学 26

BIOS/DOS (P174-204) 功能调用 读键盘 ( 阻塞 ) ( 非阻塞 ) MOV AH,1 INT 21H CMP AL, Y KBSCAN: MOV AH, 0BH INT 21H CMP AL,0FFH JZKBINPUT ; 其他例行处理操作 ; JMP KBSCAN KBINPUT:MOV AH,1 BOIS 调用 : MOV AH,0 MOV AH,1 INT 16H INT 16H 微机系统与接口东南大学 27

BIOS/DOS (P174-204) 功能调用 显示字符 :(DOS 仅字符方式 ) MOV AH,2 MOV DL, A ;07 Bell INT 21H; ^C 可退出特点 :(MS-DOS) (1) 不用 CALL (2) 软中断 INT n (3) 用户程序不必与服务程序代码相连 ==> 向量 ( 同一般 OS: 代码简洁 可读性好, 调试 使用方便 ) == 基础 CP/M-DOS /BIOS, (4)BIOS-ROM 固化 微机系统与接口东南大学 28

汇编程序输入输出 BIOS/BDOS 1. 发展 (1.0 6.22+,4.0 后为多任务 )/IBM PCDOS 2 局限性 (80x86 实模式,640K/1M) 3. 系统层次 DOS 引导块 ; DOS 自身模块 (3 个文件 ); DOS 外部命令块 (.COM/EXE/.SYS); PC 用户 系统层次结构 : 应用层 /DOS 服务层 /ROM-BIOS 服务层 / 硬件控制层 -- 接口技术外部 (SHELL) 命令行 COMMAND.COM // 内部控制 : INT n 调用 == 系统资源管理使用 4. 内存映像中断向量 /DOS 设备驱动 /DOS 内核 / 系统配置 /DOS-SHELL SHELL 常驻 / 用户程序 5. 不可重入 DOS Kernal :3 个堆栈区 :Ker_Stk1 错误处理与字符设备处理 ; Ker_ Stk2 正常处理文件与服务 ;Ker _ Stk3 正常处理字符设备服务 ; 6. 系统资源系统堆栈 (3) 系统链指针块 ( 系统扇区缓冲区链 系统句柄文件控制块链 PSP 链链 微机系统与接口第 4 章东南大学 29