admin管理员组

文章数量:1570348

一 代码实现

 DATAS SEGMENT 
  org  2000h
  num  dw    34fah
  org  2010h
  res  db    4 dup(?)
  	   db '$'
DATAS ENDS

STACKS SEGMENT
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS ;设置数据段
    MOV DS,AX
    ;此处输入代码段代码
    ;mov SI,2000h ;结果存放指针
	;mov AX,[SI]
	;mov DI,2010h
	;mov bx,0fffh ;2字节数小于0fffh
	;xor dx,dx
	;div bx ;余数在dx中
	;add al,30h
	;mov [DI],al ;十进制最高位
	;inc cx
	;inc DI
	 ;
	;mov ax,dx
	;mov bx,0ffh
	;xor dx,dx
	;div bx ;余数在dx中
	;add al,30h
	;mov [DI],al ;十进制次高位
	;inc cx
	;inc DI
	;
	;mov ax,dx
	;mov BL,0fh
	;div BL ;余数在dx中
	;add al,30h
	;mov [DI],al ;十进制第3;inc cx
	;inc DI
	;
	;add ah,	30h
	;mov [DI],ah ;十进制最低位
    ;
    
    mov SI,2000h ;结果存放指针
	mov AX,[SI] ;把存放结果的指针的地址传给AX
	mov DI,2010h ;用于显示的数据的ASCII码的存放指针
	MOV BX, AX   ;把AX所存的结果传给BX
	;最高位
	mov AL,AH;把AH传给AL,方便下面对最高位的操作
	mov cl,4
	SHR AL,cl;逻辑右移4位,分离最高位
	cmp al,9 ;AL>9?
	jBE L1 ;小于,转L1
	add al,7 ;大于,加7跳到字母的ASCII码
L1:	add al,30h;转成数字对应的ASCII码
	mov [DI],al;把已转码的AL存到res中
	INC DI  ;自增,指向下一存储单元
	;次高位 
	mov AX,BX ;把BX存储的原数据传给AX
	mov AL,AH ;把AH传给AL,方便下面对次高位的操作
	AND AL,0Fh;把已传到AL的高位数与0FH进行逻辑与操作,使最高位滤除掉置零保证AL只有次高位
	cmp al,9 ;AL>9?
	jBE L2 ;小于,转L2
	add al,7 ;大于,加7跳到字母的ASCII码
L2:	add al,30h ;转成数字对应的ASCII码
	mov [DI],al;把已转码的AL存到res中
	INC DI  ;自增,指向下一存储单元
	;第三位
	mov AX,BX ;把BX存储的原数据传给AX
	mov cl,4 
	SHR AL,cl ;逻辑右移4位,分离第三位
	AND AL,0Fh ;把高位AH右移到到AL的高位数与0FH进行逻辑与操作,使高位滤除掉置零保证AL只有第三位
	cmp al,9 ;AL>9?
	jBE L3 ;小于,转L3
	add al,7;大于,加7跳到字母的ASCII码
L3:	add al,30h;转成数字对应的ASCII码
	mov [DI],al;把已转码的AL存到res中
	INC DI ;自增,指向下一存储单元
	;最低位
	mov AX,BX;把BX存储的原数据传给AX
	AND AL,0Fh;把AL与0FH进行逻辑与操作,使第三位滤除掉置零保证AL只有最低位
	cmp al,9 ;AL>9?
	jBE L4 ;小于,转L4
	add al,7;大于,加7跳到字母的ASCII码
L4:	add al,30h;转成数字对应的ASCII码
	mov [DI],al;把已转码的AL存到res中
	
    LEA DX,res;把res的地址传给DX用于显示
    MOV AH,9;调用DOS9号功能
    INT 21H
    
    MOV AH,8;调用DOS8号功能
	INT 21H
    MOV AH,4CH;返回DOS
    INT 21H
CODES ENDS
END START

二 运行结果
把num的值修改为1FFFH,运行结果图为:

三 调试
调试g命令g=0000 005E,保证未返回DOS

D命令,查看2010d存的数据

看到存的数据分别是31h,46h,46h,46h,分别对应1,F,F,F,结果正确。

本文标签: 汇编语言显示屏上以六位字数