汇编语言程序设计
第32讲~第38讲
08
08
6
变量定义请说明面程序执行AX容什?
TABLE DW 40502030
ENTRY DW 3
┊
MOV BX OFFSET TABLE
ADD BXENTRY
MOV AX[BX]
(AX)1400H
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
分析列程序完成功
MOV AH02H
MOV DL0DH
INT 21H
MOV AH02H
MOV DL0AH
INT 21H
光标回车换行
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
START: MOV AX00C0H
MOV DSAX
MOV BX0500H
MOV CX0010H
AGAIN:MOV [BX]BL
INC BL
LOOP AGAIN
述指令串执行画图表示出物理址0110AH~0110FH单元存放容
0AH
0BH
0CH
0DH
0EH
0FH
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
分析列程序完成功
MOV AL05H
SHL AL1
MOV BLAL
MOV CL03H
SHL ALCL
ADD ALBL
5×18值存AL中
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
已BUF DB 0DH 定义分析列程序段
MOV ALBUF
CALL FAR PTR HECA
OK:
HECA PROC FAR
PUSH AX
CMP AL10
JC K1
ADD AL7
K1:ADD AL30H
MOV DLAL
POP AX
RET
HECA ENDP
问① 写出子程序HECA说明文件
② 程序执行OK处(DL) H
① 子程序HECA说明文件:
子程序名:HECA
子程序功:AL中位16进制数转换应字符ASCLL码
入口参数:转换字符AL中
出口参数:转换结果DL中
寄存器:
② 程序执行OK处(DL)44H
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
程序段:
MOV DX5678H
MOV BX1234H
PUSH BX
PUSH DX
PUSH BP
MOV BPSP
MOV AX[BP+4]
POP BP
POP DX
POP BX
指出执行(AX) H
指出执行(AX)1234H
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
分析列程序段说明完成什操作?程序执行前HEXNUM字节单元容什?
ASCNUM DB 41H
HEXNUM DB
MOV AHASCNUM
CMP AH39H
JBE NEXT
SUB AH7
NEXT SUB AH30H
MOV HEXNUMAH
HLT
程序完成功:ASCNUM单元字符转换成应位16进制数转换结果存HEXNUM单元
HEXNUM字节单元容:0AH
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
假设程序中数定义:
DATA1 DW
DATA2 DB 32 DUP ()
DATA3 DD
DLENGTH EQU DATA1
问DLENGTH值少?表示什意义?
DLENGTH值:40
表示DAT1~DAT3变量占字节数
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
分析程序段完成功
SUB1 PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV CX 00FFH
AGAIN NOP
LOOP AGAIN
POP DX
POP CX
POP BX
POP AX
RET
SUB1 ENDP
延时
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
面段程序完成功键盘输入串字符送KEYBUF1缓区显示组字符串请划线处填入必指令伪指令程序完整
STACK SEGMENT STACK
DB 256 DUP()
STACK ENDS
DATA SEGMENT
STRING1 DB ˊDO YOU WANT TO INPUT STRING(YN)ˊ
CRLF DB 0DH0AHˊˊ
STRING2 DB ˊPLEASE INPUT STRINGˊ0DH0AHˊˊ
KEYBUF1 DB 20H
DB
KEYBUF2 DB 20H DUP()
CODE SEGMENT
STARTMOV AXDATA
MOV DSAX
MOV AH09H
LEA DXSTRING1
INT 21H
MOV AH01H
INT 21H
CMP ALˊYˊ
JE INPUT
CMP ALˊyˊ
INPUTLEA DXCRLF
MOV AH09H
INT 21H
MOV AH09H
MOV DXOFFSET STRING2
INT 21H
MOV DXOFFSET KEYBUF1
INT 21H
MOV ALKEYBUF1+1
CBW
LEA SIKEYBUF2
ADD SIAX
MOV BYTE PTR[SI]ˊˊ
MOV AH09H
LEA DXCRLF
INT 21H
MOV AH09H
INT 21H
DONE MOV AH4CH
INT 21H
END START
6划线中:
第划线处:DATA ENDS
第二划线处:ASSUME CS:CODEDS:DATASS:STACK
第三划线处:JNE DONE
第四划线处: MOV AH0AH
第五划线处:MOV DXOFFSET KEYBUF2
第六划线处:CODE ENDS
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
DABUF DB 09H05H04H
┋
MOV BL2
NEXT:MOV CX3
XOR SISI
AGAIN:MOV ALDABUF[SI]
AND AL0FH
OR AL30H
MOV AH02H
MOV DLAL
INT 21H
INC SI
LOOP AGAIN
DEC BL
JNZ NEXT
指出该程序段完成功
该程序段完成功DABUF3数屏幕显示出
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
已知1008位符号数已存放缓存区INX中 FUNCY2子程序功100数高低排序请划线处填入必指令子程序完整
FUNCY2 PROC NEAR
PUSH AX
MOV CH 1001
B10: LEA SI INX
DEC CL CH
B20: MOV AL [SI]
CMP AL [SI]+1
XCHG AL [SI]+1
B30 INC SI
DEC CL
JNZ B20
DEC CH
POP AX
RET
FUNCY2 ENDP
3划线中:
第划线处:JAE B30
第二划线处:MOV [SI]AL
第三划线处:JNZ B10
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
已知N(3
LEA SI INX
XOR CX CX
MOV CL [SI]
DEC CX
B10 PUSH SI
PUSH CX
MOV AL [SI]
B20 CMP AL [SI]+1
XCHG AL [SI]+1
B30 INC SI
LOOP B20
POP CX
POP SI
RET
FUNCY2 ENDP
4划线中:
第划线处:INC SI
第二划线处:JAE B30
第三划线处:MOV [SI]AL
第四划线处:LOOP CX
微机原理应
汇编语言程序设计
第32讲~第38讲
08
08
6
分析列程序完成功:
MOV AXSEG BUFFER1
MOV DSAX
MOV AXSEG BUFFER2
MOV ES0010H
MOV SIOFFSET BUFFER1
MOV DIOFFSET BUFFER2
MOV CX1024
CLD
REP MOVSB
程序完成功:BUFFER110H字符传送BUFFER2
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档