目录 上一页 下一页 下一章

-52- PC机汇编语言实战精解

-U[Enter]
0A3E:0100
0A3E:0102
0A3E:0104
0A3E:0107
0A3E:0109
0A3E:010B
0A3E:010D

B0B6
E643
B8A904
E642
8AC4
E642
E461

MOV
OUT
MOV
OUT
MOV
OUT
IN

AL,B6
43,AL
AX,04A9
42,AL
AL,AH
42,AL
AL,61
|
|
|
|
|
|
|
|
0A3E:010F
0A3E:0110
0A3E:0112
0A3E:0114
0A3E:0116
0A3E:0118
0A3E:0119
0A3E:011B
50
0C03
E661
B401
CD21
58
E661
C3
PUSH
OR
OUT
MOV
INT
POP
OUT
RET
AX
AL,03
61,AL
AH,01
21
AX
61,AL

  PROG7的结构过于简单了,还没有涉及有关分段的更多概念,下面给出的这个例子更复杂一些,这个例程中具有"数据"和"代码"两个段,而且有两个"过程"。程序中新出现了一个陌生的指令:──SUB
助记符:SUB(subtract)
用 途:将两个数据作减法
格 式:SUB 寄存器,立即数
    SUB 寄存器,寄存器
    SUB 寄存器,存储单元
    SUB 存储单元,寄存器
    SUB 存储单元,立即数
执 行:两个数据相减,结果保存在左边的寄存器或存储器中,标志寄存器中相关位被设置
PROG7-A
PORT_B
data


equ
segment
assume

61H

ds:data

;#1--常量定义
;#2--数据段定义
;通知编译程序默认DS寄存器指向数据段
mess
db 'Press any key to stop!!!',24h ;定义一个字符串
data

code

sound









ends

segment
assume
proc
mov
out

mov
out
mov
out

in



cs:code
near
al,10110110b
43h,al

ax,4a9h
42h,al
al,ah
42h,al

al,PORT_B
;数据段结束

;#3--代码段开始
;通知编译程序默认CS寄存器指向代码段
;#4--SOUND子过程开始
;初始化定时器


;设定频率




;打开定时器和与门

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章