首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

这个输出的为乱码,要求输出为如:THE ASCII CODE OF 10 IS A,该如何解决

2012-05-22 
这个输出的为乱码,要求输出为如:THE ASCII CODE OF 10 IS A代码如下:STACKSEGMENTSTACKDB200DUP(0)STACKEN

这个输出的为乱码,要求输出为如:THE ASCII CODE OF 10 IS A
代码如下:
STACK SEGMENT STACK
  DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
TAB DB '0123456789ABCDEF'
OUT1 DB 0DH,0AH,'THE ASCII CODE OF$'
OUT2 DB 'IS',0,0,'H$'
DATA ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:MOV AX,DATA
  MOV DS,AX
  LEA BX,TAB
LOPA:LEA DX,OUT1
  MOV AH,9
  INT 21H
  MOV AH,1
  INT 21H

  CMP AL,0DH
  JE EXIT

  MOV DH,AL
  MOV AL,0FH
  XLAT
  MOV OUT2+5,AL
  MOV AL,DH
  MOV CL,4
  SHR AL,CL
  XLAT
  MOV OUT2+14H,AL
  LEA DX,OUT2
  MOV AH,9
  INT 21H
  JMP LOPA
EXIT: MOV AH,4CH
  INT 21H
CODE ENDS
  END BEGIN
哪里出错了,求解等待ING

[解决办法]
debug 单步走下不就知道了?

Assembly code
  MOV AL,0FH ; 这里应该是 and al, 0fh 吧  XLAT  MOV OUT2+5,AL  ; 应该是 mov OUT2+3, AL 吧  MOV AL,DH  MOV CL,4  SHR AL,CL  XLAT  MOV OUT2+14H,AL  ; 14H? 什么道理? 应该是 2 吧  ; 不过这样最后的版面上有些难看, IS 前后最好有空格, 这样就会让上面两个值有变化 

热点排行