📄 7ex1.asm
字号:
;incude的使用 ,包含disp.asm
;在数据段中定义八个字节数据,把这些数据转换成16进制数的ASCll码存在上述数据之后,
;然后在屏幕上显示这些数据。显示数据用DOS功能2号调用,每个数据用空格分隔。
NAME EX1
PAGE 50,70
;--------DATA DEFINE-----
DATA SEGMENT
A1 DB 30H,34H,42H,43H,44H,45H,46H,47H
B1=$-A1
B2=B1*2
A2 DB B2 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK
STA DW 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,100
MOV SP,AX
mov SI,OFFSET A1
MOV DI,OFFSET A2
MOV CX,B2 ;要转换的字节数
DO: MOV AL,[SI] ;取一个字节到AL
CALL EX2_16 ;调转换子程序
INC SI ;指向下个数
LOOP DO
MOV DI,OFFSET A2 ;指向ASCII码区
MOV CX,B2
CALL DISPLAY ;调显示子程序
MOV AH,4CH ;返回DOS
INT 21H
;--------2 exchange 16-----
EX2_16 PROC NEAR
PUSH CX ;保护现场
PUSH BX
G1: MOV BL,2 ;需转换2次
MOV BH, AL ;AL中的数暂存BH
MOV CL, 4 ;置移位位数
ROL AL, CL ;循环左移4位
G2: AND AL, 0FH ;得到低4位
CMP AL,10 ; BL <10?
JB S ; BL<10,转
ADD AL,07H ;大于10,加7
S: ADD AL,30H
MOV [DI],AL ;存ASCII码
INC DI ;修改地址
MOV AL,BH
DEC BL
JNZ G2 ;2个数没转换完,继续
;恢复现场
POP BX
POP CX
RET ;子程序返回
EX2_16 ENDP
include disp.asm
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -