微机实验思考题..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据传送
1、子程序Move中为什么比较SI、DI?
源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。
第一章源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。
2、编写一个程序,将DS段中的数据传送到实验仪B4区的61C256中。
说明:B4区的
61C256在I/O 设备区,使用IOR 、IOW 读写。
实验二 数制转换实验
1. 实验内容1中将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大可为多少?为什么? 最大65535(FFFF ),最小为0.存储器只能存16位,即FFFF 。
2. 将一个十六位二进制数转换为ASCII 码十进制数时,如何确定D i 的值? 01223344D 10D 10D 10D 10D N +⨯+⨯+⨯+⨯=
D i :表示十进制数0~9
将十六位二进制数转换为五位ASCII 码表示的十进制数,就是求D1~D4,并将它们转换为ASCII 码。
该位除以10取商,加30H 。
即加30H 为对应的 ASCII 码。
3. 在十六进制转换为ASCII 码时,存转换结果后,为什么要把DX 向右移四次? 取出存入四位十六进制数的下一位。
腾出空间。
4. 自编ASCII 码转换十六进制、二进制转换BCD 码的程序,并调试运行。
ASCII 码转换十六进制 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX,0004H MOV DI,3500H MOV DX,[DI] A1: MOV AX,DX AND AX,00FFH CMP AL,40H JB A2 SUB AL,07H A2: SUB AL,30H MOV [DI+0DH],AL DEC DI PUSH CX MOV CL,08H SHR DX,CL POP CX LOOP A1 MOV AX,4C00H INT 21H CODE ENDS
实验三运算类编程实验
1. 求累加和程序设计,在偏移地址为1000H开始依顺序填入16个字(16个16位
数),利用程序求和,存放在偏移地址2000H;
2. 多字节加法程序设计,参考原程序,编写个两个64位数的减法程序,结果保存到
具体内存单元,调试并记录。
实验四分支程序设计实验
1、将源数据首址改为3100H,目的数据地址改为310A,再加以验证(注意单步调试);
2、将源数据首址改为310AH,目的数据地址改为3100,再加以验证(注意单步调试)。
实验六排序程序设计实验
1、注意两个循环是如何循环的,如果想减少判断次数,比如说几次交换后就不再有数据交换了,如何修改程序来减少程序执行时间;
2、编一程序把3000H-3009H中内容按从大到小排列;如果是有符号数怎么改写程序。
思考题2. 编一程序把3000H-3009H的内容从大到小排列
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 000AH
MOV SI, 300AH
MOV BL, 0FFH
A1: CMP BL, 0FFH
JNZ A4
MOV BL, 00H
DEC CX
JZ A4
PUSH SI
PUSH CX
A2: DEC SI
MOV AL, [SI]
DEC SI
CMP AL, [SI]
JB A3
XCHG AL, [SI]
MOV [SI+01H], AL
MOV BL, 0FFH
A3: INC SI
LOOP A2
POP CX
POP SI
JMP A1
A4: MOV AX,4C00H
INT 21H ;程序终止
CODE ENDS
END START
思考题 3.若是有符号数,该怎么处理(需要增加比较数字正负的环节)
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 000AH
MOV SI, 300AH
MOV BL, 0FFH
A1: CMP BL, 0FFH
JNZ A7
MOV BL, 00H
DEC CX
JZ A7
PUSH SI
PUSH CX
A2: DEC SI
MOV AL, [SI]
DEC SI
MOV AH, 80H
CMP AL, AH
JB A3
CMP [SI] , AH
JB A5
CMP AL, [SI]
JB A6
JMP A5
A3: CMP [SI] , AH
JB A4
JMP A6
A4: CMP AL,[SI]
JB A5
JMP A6
A5: XCHG AL,[SI]
MOV [SI+01H],AL
MOV BL,0FFH
A6: INC SI
LOOP A2
POP CX
POP SI
JMP A1
A7: MOV AX,4C00H
INT 21H ;程序终止
CODE ENDS
END START END START
硬件一静态存储器扩展实验(接线只有一种)
5.改变实验程序,按非规则字写存储器,观察实验结果。
规则字是低位地址为奇数,否者是非规则字,非规则字读取需要两个周期,而规则字只需要一个周期
在计算机中,一个字占两个字节。
一个字在存储器中按字节存储,若高地址为偶数,低地址为奇数,则为规则字。
相反,若高地址为奇数,低地址为偶数,则为非规则字。
6.改变实验程序,按字节方式写存储器,观察实验现象。
字节(Byte)是计算机信息技术用于计量存储容量和传输
容量的一种计量单位,一个字节等于8位二进制数,在
UTF-8编码中,一个英文字符等于一个字节
7. 将实验程序改为死循环程序,分别按规则字与非规则字的方式写存储器。
5. 改变实验程序,按非规则字写存储器,观察实验结果。
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
START PROC FAR ;远过程名
ASSUME CS:CODE ;分配代码段cs
MOV AX, 8000H ; 存储器扩展空间
MOV DS, AX ;数据段ds地址系
统
总
线
XA1
XA15
A0
A14
.
.
.
.
.
.
XD0
XD7
D0
D7
.
.
.
.
.
.
MWR#WR
MRD#RD
MY0CS
SRAM
单
元XD8
XD15
D8
D15
.
.
.
.
.
.
BLE#BLE#
BHE#BHE#
AA0: MOV SI, 0001H ; 首地址 8000:0001si是偏移地址,01非规则字MOV CX, 0010H ;cx计数寄存器10h十六进制=16十进制
MOV AX, 0000H ;ax是累加器从0开始
AA1: MOV [SI], AX
INC AX ;+1
INC SI ;+1
INC SI ;+1 一个字si要+2
LOOP AA1 ;cx不等于0则循环
MOV AX,4C00H
INT 21H ;程序终止
START ENDP
CODE ENDS
END START
6.改变实验程序,按字节方式写存储器,观察实验现象。
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE
MOV AX, 8000H ; 存储器扩展空间段地址
MOV DS, AX
AA0: MOV SI, 0000H ; 数据首地址cx计数16
MOV CX, 0010H
MOV AX, 0000H
AA1: MOV [SI], AX
INC AX
INC SI ;SI只加1一个字节
LOOP AA1
MOV AX,4C00H
INT 21H ;程序终止
START ENDP
CODE ENDS
END START
7.将实验程序改为死循环程序,分别按规则字与非规则字的方式写存储器。
(1)规则字方式
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE
MOV AX, 8000H ; 存储器扩展空间段地址
MOV DS, AX
AA0: MOV SI, 0000H ; 数据首地址(偶地址开始)
MOV CX, 0010H
MOV AX, 0000H
AA1: MOV [SI], AX
INC AX
INC SI
INC SI
LOOP AA1
MOV AX,4C00H
JMP AA0 ;跳转到AA0开始执行
INT 21H ;程序终止
START ENDP
CODE ENDS
END START
(2)非规则字方式
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE
MOV AX, 8000H ; 存储器扩展空间段地址
MOV DS, AX
AA0: MOV SI, 0001H; 数据首地址(奇地址开始)
MOV CX, 0010H
MOV AX, 0000H
AA1: MOV [SI], AX
INC AX
INC SI
INC SI
LOOP AA1
MOV AX,4C00H
JMP AA0 ;跳转到AA0开始执行
INT 21H ;程序终止
START ENDP
CODE ENDS
END START
硬件二 8259中断控制实验
1.在中断中完成BCD码转换为二进制数。
将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3510H起始的内存单元中,每次中断完成一个二位十进制数的BCD码转换。
实验步骤:将四个二位十进制数的BCD码存入3500H~3507H中,即:先键入E3500,然后输入01 02 03 04 05 06 07 08.运行程序,按一次单次脉冲开关KK1+,查看3510内容,应为0ch。
再按一次单次脉冲开关KK1+,查看3511内容,应为22。
继续发中断,依次查看3512,3513内容。
在中断中完成BCD码转换为二进制数。
.MODEL TINY
IO8259_0 EQU 0260H ;EUQ等值赋值语句0260H????端口地址?
IO8259_1 EQU 0261H
.DATA
BUFFER DB 8 DUP(?)
ReDisplayFlag DB 0
.STACK 100
.CODE
START: MOV AX,@DATA
MOV DS,AX ;ds整数段寄存器es附加段寄存器
MOV ES,AX
PUSH DS
CALL WriIntver
CLI ;中断标志置0 cpu禁止响应可屏蔽中断INTR
POP DS ;ds出栈后面为初始化8259
;icw1初始化主片8259 ;icw指初始化命令字iow指方式设置命令字
MOV DX,IO8259_0 ;0260H送入dx
MOV AL, 13H ;13=00010011送入al
OUT DX, AL ;ICW1执行00010011即
;写入偶地址标志位为1边沿触发单级使用需设置icw4
MOV DX,IO8259_1 ;0261送入dx
MOV AL, 08H ;08=00001000 icw2写入奇地址尾三位指000即ir0
;引入的中断引脚信号,终端类型码00001 000查表8.1中断类信号为08H,中断源系统时钟
OUT DX, AL ;ICW2执行设置
MOV AL, 09H ;09=00001001
;写入1奇地址,000标志位1全嵌套方式00非缓冲方式18086配置
OUT DX, AL ;ICW4执行设置
MOV AL, 0 ;OCW1 IMR各位置清0???
OUT DX, AL ;执行操作(p270页)??
MOV SI, 3500H ;si源変址寄存器
MOV DI, 3510H ;目的変址寄存器
STI ;中断标志置1允许cpu响应可屏蔽中断
AA1: NOP ;无操作
JMP AA1
WriIntver PROC NEAR ;近过程名
PUSH ES ;es入栈
MOV AX,0 ;ax置0
MOV ES,AX ;es置0
MOV DI,20H ;di目的変址寄存器??????????20H?????????
LEAAX,MIR7 ;装入mir7的有效/偏移地址
STOSW ;将累加器al/ax中的一个字(w)送入附加断中以di为目的指针的串中,且;且di+-1或2
MOV AX,CS ;cs代码段寄存器????
STOSW
POP ES ;当前sp栈顶出栈一个字送入目的操作数es,且sp+2
RET ;对于call调用的返回指令
WriIntver ENDP ;本段短程序结束
MIR7: STI ;数制变换程序
XOR AX,AX ;异或ax=0
MOV AL, [SI] ;偏移地址si送入al即al=si
ADD AL, AL ;al+al即al*2
MOV BL, AL ;al送入bl=2al
ADD AL, AL ;al=4al
ADD AL, AL ;al=8al
ADD AL, BL ;al=8al+2al=10al
INC SI ;si+1
ADD AL, [SI] ;al=10al+si+1=11si+1(11*1+1/11*3+1/11*5+1/11*7+1)
MOV [DI], AL ;al送入目的変址寄存器
INC SI ;si再加1(即总共加2)(1/3/5/70
INC DI ;di+1=al+1=10al+1
MOV AL, 20H ;??????????8259A的口地址为20H/21H
MOV DX,IO8259_0
OUT DX, AL ;中断结束命令
IRET
END START
2.在上述试验基础上,第五次中断结束中断,再按单次脉冲开关KK1+将无法进入中断服务程序。
.MODEL TINY
IO8259_0 EQU 0260H
IO8259_1 EQU 0261H
.DATA
BUFFER DB 8 DUP(?)
ReDisplayFlag DB 0 ;0-不需要显示
counter DB 06H ;中断次数,计数conter
.STACK 100
.CODE
START: MOV AX,@DATA ;数据引入
MOV DS,AX
MOV ES,AX
PUSH DS
CALL WriIntver
CLI ;中断标志置0 cpu禁止响应可屏蔽中断INTR
POP DS
;初始化主片8259
MOV DX,IO8259_0
MOV AL, 13H
OUT DX, AL ;ICW1同上
MOV DX,IO8259_1
MOV AL, 08H
OUT DX, AL ;ICW2同上
MOV AL, 09H
OUT DX, AL ;ICW4同上
MOV AL, 0 ;OCW1同上
OUT DX, AL
MOV SI, 3500H
MOV DI, 3510H
STI
AA1: NOP
JMP AA1
WriIntver PROC NEAR ;近过程名内容同上
PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEAAX,MIR7
STOSW
MOV AX,CS
STOSW
POP ES
RET
WriIntver ENDP
MIR7: STI ;允许响应INTR可屏蔽型中断
DEC counter ;计数减1
JNA AA3 ;cf V(或计算)zf=1时低于等于/不高于,转移,
;cf进位标志(此处用不到,cf=0,无进位),zf零标志结果为0时zf=1
;54321(前5次)时cf.zf均为0不转移程序正常下走,结果为0时zf=1转移aa3空循环终止XOR AX,AX
MOV AL, [SI]
ADD AL, AL
MOV BL, AL
ADD AL, AL
ADD AL, AL
ADD AL, BL
INC SI
ADD AL, [SI]
MOV [DI], AL
INC SI
INC DI
MOV AL, 20H
MOV DX,IO8259_0
OUT DX, AL ;中断结束命令
IRET ;call调用转换程序结束
AA3: NOP
JMP AA3
END START
3:编写程序利用8254计数器0和计数器1分别作为8259IR6,IR7的中断请求信号;将8255PA0接到发光二极管D0,8255PA7接到发光二极管D1;使DO,D1闪动,D0每闪动10次D1闪动一次。
4、利用中断实现8255实验一(基本输入输出实验)
硬件三 8255并行接口实验
1:执行程序后,使发光二极管闪动。
(接线1)
2:执行程序后,使发光二极管高八位和低八位亮灭相反。
(X86文档)(接线1)
1、例子程序中只展示了8155的输入输出和读写数据RAM的功能,8155还有定时器/计数器的功能,有兴趣读者可以自己编写程序,通过8155来实现定时,当作定时器用时,如何接线?
2、若是要对PC口位操作,应该如何编写程序?
3、如何使用8155实现键盘扫描和LED显示?
(星研文档)
1、如何对8255的PC口进行位操作?
方法 1
若是要对PC口位操作,应该如何编写程序?
.MODEL TINY
.STACK 32
.CODE
START: MOV DX, 0273H
MOV AL, 90H
OUT DX, AL
AA1: ;MOV DX, 0270H
;IN AL, DX
;CALL DELAY
MOV AL,00001011B ;PC5=1
MOV DX, 0273H
OUT DX, AL
JMP AA1
DELAY: PUSH CX
MOV CX, 0F00H
AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
END START
方法2
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 0273H
MOV AL,10000000B ;D3为0 C 高口输出 D0为0 C 低口输出
OUT DX,AL
MOV AL, 00001111B ;D3D2D1均为1 PC7置1 不亮
OUT DX, AL
MOV AL, 00000001B ;PC0 IS 1
OUT DX,AL
MOV AL,000000111B ;PC3 IS 1
OUT DX,AL
JMP $
CODE ENDS
END START
思考题:
1:执行程序后,使发光二极管闪动。
2:执行程序后,使发光二极管高八位和低八位亮灭相反。
片选区
片选
地址范围 说明 mCS0
80000H ~BFFFFH 存贮器芯片的片选,16位数据总线
CS1
0270H ~027FH I/O 芯片的片选,8位数据总线 CS2
0260H ~026FH CS3
0250H ~025FH CS4
0240H ~024FH CS5 0230H ~023FH I/O 芯片的片选,16位数据总线 思考1(已经确认)
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE ;声明代码段
START: MOV DX, 0273H ;控制端口的地址(我们接的是CS1非,其他具体查表) MOV AL, 80H ;A(D6.5wei) 0方式 B(D21wei) 0方式 1000 0000B OUT DX, AL ;输入al ,即执行方式选择控制字
MOV BX, 0000H ;0000 0000 0000 0000(灯全亮)
AA1: MOV DX, 0270H ;端口A 地址
MOV AL, BH ;高八位
OUT DX, AL
NOT BH ;NOT 是做灭/亮灯信号
MOV DX, 0271H ;端口B 地址
MOV AL, BL ;高八位
OUT DX, AL
NOT BL
CALL DELAY
JMP AA1
DELAY PROC NEAR ;延时程序
MOV CX, 0FFF0H
AA2: PUSH AX
POP AX
LOOP AA2
RET
DELAY ENDP
CODE ENDS
END START
思考题2:使发光二极管高八位和低八位亮灭相反(已经确认)
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 0273H ;控制端口的地址(我们接的是CS1非,其他具体查表)
MOV AL, 80H ;A0方式 B0方式 1000 0000B
OUT DX, AL
MOV BX, 00FFH ;0000 0000 1111 1111(灯全闪初始高低相反)AA1: MOV DX, 0270H ;端口A地址
MOV AL, BH
OUT DX, AL
NOT BH ;NOT是做灭/亮灯信号
MOV DX, 0271H ;端口B地址
MOV AL, BL
OUT DX, AL
NOT BL ; NOT亮/灭
CALL DELAY
JMP AA1
DELAY PROC NEAR
MOV CX, 0FFF0H
AA2: PUSH AX
POP AX
LOOP AA2
RET
DELAY ENDP
CODE ENDS
END START
思考题3:利用中断完成实验一。
(已经确认)
.MODEL TINY ;同上
IO8259_0 EQU 0260H
IO8259_1 EQU 0261H
.DATA
BUFFER DB 8 DUP(?)
Counter DB ?
ReDisplayFlagDB 0
.STACK 100
.CODE
START: MOV AX,@DA TA ;同上
MOV DS,AX
MOV ES,AX
PUSH DS
CALL WriIntver ;同上
CLI
POP DS
MOV DX, 0273H ;初始化主片8255
MOV AL, 90H
OUT DX, AL
MOV DX,IO8259_0 ;初始化主片8259同上
MOV AL, 13H
OUT DX, AL ;ICW1
MOV DX,IO8259_1
MOV AL, 08H
OUT DX, AL ;ICW2
MOV AL, 09H
OUT DX, AL ;ICW4
MOV AL, 0 ;OCW1
OUT DX, AL
STI
AA1: NOP ;死循环,利用脉冲跳出JMP AA1
WriIntver PROC NEAR ;近过程名同上PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEA A X,MIR7
STOSW
MOV AX,CS
STOSW
POP ES
RET
WriIntver ENDP
MIR7: STI ;允许响应INTR可屏蔽型中断
AA2: MOV DX, 0270H ;??????????????
IN AL, DX
MOV DX, 0271H
OUT DX, AL
MOV AL, 20H
MOV DX,IO8259_0
OUT DX, AL ;中断结束命令
IRET
END START
硬件四 8254定时/计数器应用实验
1:将CLK0接到时钟源,使程序每隔一秒显示一次M。
2: 编写程序使8254计数器0工作于方式0,OUT0接到发光二极管,使其闪动。
(x86文档)
1、8253还有其它五种工作方式,其它工作模式下,硬件如何设计?程序如何编写?
1,8253端口0工作在方式0(程序正确性有疑问)??????????????
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,31H
OUT DX,AL ;计数器T0设置在模式0状态,BCD码计数31H 50H 83H MOV DX,T0_ADDR
MOV AL,50H
OUT DX,AL
MOV AL,83H
OUT DX,AL
JMP $
END START
2,8253端口0工作在方式1(1953)
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,33H
OUT DX,AL ;计数器T0设置在模式1状态,BCD码计数33H 06H 39H MOV DX,T0_ADDR
MOV AL,06H
OUT DX,AL
MOV AL,39H
OUT DX,AL
JMP $
END START
3,8253的T0工作方式2(1953)(输出一个负脉冲)
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,35H
OUT DX,AL ;计数器T0设置在模式2状态,BCD码计数35H 53H 19H MOV DX,T0_ADDR
MOV AL,53H
OUT DX,AL
MOV AL,19H
OUT DX,AL
JMP $
END START
4,8253的T0工作方式3(1953)
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,37H
OUT DX,AL ;计数器T0设置在模式3状态,BCD码计数
;(clk0接1953产生1HZ方波)37H 53H 19H
MOV DX,T0_ADDR
MOV AL,53H
OUT DX,AL
MOV AL,19H
JMP $
END START
5、8253的T0工作方式4(1953)
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,39H
OUT DX,AL ;计数器T0设置在模式4状态,BCD码计数 39H 53H 19H MOV DX,T0_ADDR
MOV AL,53H
OUT DX,AL
MOV AL,19H
OUT DX,AL
JMP $
END START
6、8253的T0工作方式5(1953)
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,3BH
OUT DX,AL ;计数器T0设置在模式5状态,BCD码计数 3BH 53H 19H MOV DX,T0_ADDR
MOV AL,53H
OUT DX,AL
MOV AL,19H
OUT DX,AL
JMP $
END START
2、使用8253,编写一个实时钟程序。
(星研文档已经确认正确)
.MODEL TINY
.STACK 100
.CODE
START: MOV DX,0263H
MOV AL,37H
OUT DX,AL
MOV AL,53H OUT DX,AL MOV AL,19H OUT DX,AL MOV DX,0263H MOV AL,77H OUT DX,AL MOV DX,0261H MOV AL,60H OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,0263H MOV AL,0B7H OUT DX,AL MOV DX,0262H MOV AL,60H OUT DX,AL MOV AL,00H OUT DX,AL
JMP $
END START。