通过调用子程序来把字符串一十六进制的形式输出
2009-05-27 21:51
302 查看
DATAS SEGMENT
MES DB 'Please enter the Source but the size of it should less 100',0AH,0DH,'$'
MES2 DB 0AH,0DH,'$'
Source DB 64H
DB ?
DB 64H DUP(?)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
restart:
MOV AX,DATAS
MOV DS,AX
MOV DX,OFFSET MES ;提示信息输入源数据
MOV AH,09H
INT 21H
MOV DX, SEG Source
MOV DS, DX
MOV DX, OFFSET Source ;输入一个字符串放到变量SD中
MOV AH, 0AH
INT 21H
MOV DX,OFFSET MES2 ;回车换行
MOV AH,09H
INT 21H
SUB CH,CH ;将字符串的实际长度存于DX中
MOV CL,Source+1
MOV SI,OFFSET Source+2
CALL SHOWSTRING
MOV AX,4C00H ;返回DOS
INT 21H
SHOWSTRING PROC
Again: PUSH CX
PUSH SI
CLD
LODSB
AND AL,0F0H ;取 高4位
MOV CL,04h
SHR AL,CL
CMP AL,0AH ;是否是A以上的数
JB C2
ADD AL, 07H
C2: ADD AL, 30H
MOV DL, AL ;显示字符的高四位十六进制形式
MOV AH, 02H
INT 21H
;POP CX
POP SI
LODSB
AND AL, 0FH ;取低4位
CMP AL, 0AH
JB C3
ADD AL, 07H
C3: ADD AL, 30H
MOV DL, AL ;显示字符低四位的十六进制形式
MOV AH, 02H
INT 21H
POP CX
LOOP Again
RET
SHOWSTRING ENDP
CODES ENDS
END START
MES DB 'Please enter the Source but the size of it should less 100',0AH,0DH,'$'
MES2 DB 0AH,0DH,'$'
Source DB 64H
DB ?
DB 64H DUP(?)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
restart:
MOV AX,DATAS
MOV DS,AX
MOV DX,OFFSET MES ;提示信息输入源数据
MOV AH,09H
INT 21H
MOV DX, SEG Source
MOV DS, DX
MOV DX, OFFSET Source ;输入一个字符串放到变量SD中
MOV AH, 0AH
INT 21H
MOV DX,OFFSET MES2 ;回车换行
MOV AH,09H
INT 21H
SUB CH,CH ;将字符串的实际长度存于DX中
MOV CL,Source+1
MOV SI,OFFSET Source+2
CALL SHOWSTRING
MOV AX,4C00H ;返回DOS
INT 21H
SHOWSTRING PROC
Again: PUSH CX
PUSH SI
CLD
LODSB
AND AL,0F0H ;取 高4位
MOV CL,04h
SHR AL,CL
CMP AL,0AH ;是否是A以上的数
JB C2
ADD AL, 07H
C2: ADD AL, 30H
MOV DL, AL ;显示字符的高四位十六进制形式
MOV AH, 02H
INT 21H
;POP CX
POP SI
LODSB
AND AL, 0FH ;取低4位
CMP AL, 0AH
JB C3
ADD AL, 07H
C3: ADD AL, 30H
MOV DL, AL ;显示字符低四位的十六进制形式
MOV AH, 02H
INT 21H
POP CX
LOOP Again
RET
SHOWSTRING ENDP
CODES ENDS
END START
相关文章推荐
- 通过实现字符串的正向输入逆向输出验证递归调用
- C++中输出十六进制形式的字符串
- 字符串转为十六进制的形式并以十六进制形式输出
- 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
- 调用 BIOS 视频中断向量(int 10h)输出字符串
- 输入一个带符号的十进制数字串,以四位十六进制的形式输出该串对应的值
- 输出内存数据的二进制和十六进制的字符串表示
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次
- 嘿牛程序员_成都传智博客_讨论字符串中字符出现的次数(续一:通过数组实现按次序输出)
- 数据存储字典形式,并以字符串输出
- python调用外部子进程,通过管道实现异步标准输入和输出
- 字符串排版化输出(左边十六进制,右边是对应字符)
- 将一个字节转化成十六进制形式的字符串
- 编写程序通过栈的方式将任意输入的字符串内容进行逆序输出。
- BOM查找指定子项的所有父项,并以字符串的形式输出
- cpp p38--以十进制,八进制和十六进制形式输出100
- C#扩展方法实现 byte[] 输出为HEX字符串形式
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- 输入一个整数,将这个整数以字符串的形式逆序输出
- 2017腾讯实习生笔试题简单练习——给定字符串,以十六进制和规定格式输出