汇编实验——将十六位二进制数转换为五位ASCII码

要求:在0500H-0501H单元存放被转换的16位二进制数(如00AAH),转换结果存放到0510H-0514H单元中

这实验是真的顶,没预习根本不可能自己做出来,还好机房有前辈的代码~~~
我不知道老师咋想的 一些可能连C语言都没玩明白的自动化带学生,第一个实验直接让它们做汇编的数制转换 很难绷得住

STACK SEGMENT STACK
  DW 64 DUP (?)
 STACK ENDS
DATA SEGMENT 
     ORG 0500H
DATA1 DW 00AAH
      ORG 0510H
DATA2 DB 5 DUP (?)
DATA ENDS
CODE SEGMENT
     ASSUME CS:CODE, DS:DATA,SS:STACK

START:
 MOV AX,DATA ;
 MOV DS,AX
 LEA SI,DATA1
 LEA DI,DATA2+4
 MOV BX,000AH
 MOV CX,0005H
 MOV AX,[SI]
AA0: MOV DX,000H
     DIV BX
	 ADD DL,30H
     MOV [DI],DL
     DEC DI 
     LOOP AA0
     
    MOV AH,4CH	 
INT 21H
CODE ENDS
  END START

这里用masm模拟下当时的操作

U命令

首先用 U CS:0000命令 发现 代码段CS段在07C4 数据段DS在0772

E命令

E 0772:0500 修改 数据为00AA

G命令 使debug生效

G=07C4:0000

D命令

D 0772:0500,0515查看结果

如图 00AAH被转化为 ASCII码170

posted @ 2021-11-03 21:57  liv_vil  阅读(650)  评论(0)    收藏  举报