用8086汇编语言编写 把16进制数转化为ASCII码

作者&投稿:袁华 (若有异议请与网页底部的电邮联系)
大学汇编语言程序设计题 用汇编语言编写把ASCII转化为十六进制的程序~

这里要分清楚,你ascii码 是10进制的数字序列 还是 16进制的数字序列?
如果是16进制的数字序列,只需要每一位减30h或37h得到对应的16进制数位,再通过左移4位 与转换下一位相或即可。如此循环。
如果是10进制的数字序列,则需要每一位减30h得到对应的10进制数位,通过乘10再相加转换的下一位即可。如此循环。

比如说1aH
转换成ASCII就是31h,41h
计算过程就是当<A时,+30h,否则加37h
mov mem,1ah
mov al,mem
and al,0f0h
shr al,4
cmp al,a
jb xx
add al,7h
xx:
add al,30h
mov dl,al
mov ah,02h
int 21h
mov al,mem
and al,0fh
cmp al,a
jb xxx
add al,7h
xxx:
add al,30h
mov dl,al
mov ah,02h
int 21h
汇编大多是指汇编语言,汇编程序。把汇编语言翻译成机器语言的过程称为汇编。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理的系统软件。

code  segment
      assume cs:code
      org 100h
start:
      jmp bbb
num   dw 0FF78h
array db 10,13,4 dup(?),10,13,'$'

bbb:
      push cs
      pop ds
      push cs
      pop es
      
      ;以下是通过移位取出各位16进制数并放入数组array中
      lea di,array
      add di,5
      mov cx,4
      mov ax,word ptr[num]
again1:
      push cx
      push ax
      and ax,0fh
      mov byte ptr[di],al
      pop ax
      mov cl,4
      ror ax,cl
      dec di
      pop cx
      loop again1

      ;以下是将array数组中的16进制数转为ASCii码
      lea si,array
      add si,2
      mov cx,4
again2:
      cmp byte ptr[si],9
      jg next1
      add byte ptr[si],30h
      jmp next2
next1:
      add byte ptr[si],37H
next2:
      inc si
      loop again2

      ;以下调用dos功能显示array
      lea dx,array
      mov ah,9
      int 21h
      int 20h
code  ends
      end start


如是一个字节,分两步:
1、先将该字节循环左移四位,留低四位并加30H,然后判断该值是否大于39h,如是,则再加07H输出;否则直接输出。
2、再将原低四位做同样处理输出。

;
MOV DL, x
CMP DL, 10
JB A30
ADD DL, 7
A30:
ADD DL, '0'
MOV y, DL

END


用8086汇编语言编写程序键盘输入一段字符以#结束,统计其中数字、字母...
stacksegmentstack\\x0d\\x0abyte256dup(0)\\x0d\\x0astackends\\x0d\\x0a\\x0d\\x0adatasegment\\x0d\\x0aC1dw0;空格数\\x0d\\x0aC2dw0;数字数\\x0d\\x0aC3dw0;字母数\\x0d\\x0aC4dw0;其它字符数\\x0d\\x0aBUFFdb64,0,64dup(?);接收输入缓冲区,BUFF[0]存储缓冲区大小,BUFF[1]存储实际输入数,B...

用8086汇编语言编写程序,接受从键盘上输入的一个两位十进制数字,这个数...
做而论道 采纳率:64% 擅长: 汇编语言 其他编程语言 编程语言 工程技术科学 嵌入式 其他回答 学汇编,要用到哪些软件 zpue1234 | 发布于2012-06-01 举报| 评论(1) 0 1 为您推荐: 汇编语言程序设计pdf 汇编语言小程序100例 关于汇编语言程序 8086 汇编语言 8086汇编语言解释 8086汇编语言是什么 ...

8086汇编语言程序设计第2版内容提要
本书以Intel 8086\/8088 CPU为核心,主要讲解其指令系统,辅以实模式下的80x86指令,旨在全面介绍汇编语言的基础理论和程序设计技巧。内容涵盖广泛,主要包括以下几个方面:首先,对汇编语言程序设计的基本概念进行了详尽的阐述,使读者对这门语言有初步的认识。接着,详细解析了80x86的寻址方式和指令系统,...

8088·8086汇编语言程序设计内容简介
汇编语言是一种直接与计算机硬件交互的语言,特别适合于微型计算机系统的开发和过程控制。在当今,8088\/8086和80×86系统计算机被广泛应用,因此,《8088\/8086汇编语言程序设计》这部教材将焦点放在了这一系统上,作为学习的基础内容。该书旨在提供全面的教学,特别强调了由易到难的学习路径和实例驱动的方法。...

使用8086汇编语言编写程序实现:将从键盘输入的小写字母转换成大写字母...
data\\x0d\\x0amov ds,ax\\x0d\\x0alea bx ,chars\\x0d\\x0amov si,0\\x0d\\x0amov ch,0\\x0d\\x0a;---输入字符子程序\\x0d\\x0ascanf:\\x0d\\x0amov ah,1\\x0d\\x0aint 21h\\x0d\\x0acmp al,0dh\\x0d\\x0ajz crt\\x0d\\x0acmp al,61h\\x0d\\x0ajnb L1 ;al>='a'\\x...

8088·8086汇编语言程序设计目录
首先,第一章《概论》涵盖了汇编语言的基本概念。在第一节中,通过引言引导读者了解汇编语言的起源和重要性;第二节则深入讲解汇编语言程序设计的原理;第三节介绍了汇编程序的基本构成和使用。接着,进入第二章,8088\/8086系统结构是理解汇编程序设计的关键。第一节详细描述了8088微处理器的硬件结构,第...

8086汇编语言编写的程序现在能计算机执行吗
只要能通过编译并能够正确连接,最后生成.EXE文件或.COM,肯定能在现在的计算机上运行,因为电脑指令都是向下兼容的。关于编译软件,建议使用MASM系列,哪个版本都可以,因为你是使用8086汇编语言编写的程序,在INTEL系列汇编语言中,是最低的了。

8086汇编语言程序设计?
4CH ;结束程序 INT 21H ;---DISP PROC NEAR MOV BX, 10 MOV CX, 0 DI1:MOV DX, 0 DIV BX PUSH DX INC CX CMP AX, 0 JNZ DI1 MOV AH, 2 DI2:POP DX ADD DL, '0' INT 21H LOOP ...

用8086汇编语言编写一个输入字符串的程序
AH, 9INT 21HJMP LOOP1LOOP3:; 判断 SHIFT 键MOV DL, ALCMP DL, 0EHJNE LOOP2MOV DX, OFFSET SPACESMOV AH, 9INT 21HJMP LOOP1LOOP2:; 判断 ESC 键MOV DL, ALCMP DL, 1BHJE EXIT; 显示字符MOV DL, ALMOV AH, 02HINT 21HJMP LOOP1EXIT:MOV AH, 4CHINT 21HCSEGENDSEND BEGIN ...

8086\/8088汇编语言编一程序
Shift键: VK_SHIFT ($10)Ctrl键: VK_CONTROL (17)Alt键: VK_MENU (18)空格键: VK_SPACE ($20\/32)退格键: VK_BACK (8)左徽标键: VK_LWIN (91)右徽标键: VK_LWIN (92)鼠标右键快捷键:VK_APPS (93)Insert键: VK_INSERT (45)Home键: VK_HOME (36)Page Up: VK_PRIOR ...

渠县15267654421: 如何使用汇编语言将16进制转化为10进制 -
巴昏洛希: 假设AX=59H BX=0(16进制数)——(10进制=89) 这个程序最好写个子程序. loop: mov a,AX sub a,1 mov AX,A mov a,BX ;减C标志 Sbc a,0h mov BX,A snz c 判断BX带标志-0是否借位 借位就跳出循环 不借位就进行+1 daa模式 jmp END mov a,1 ;减得断表示16进制的数还不=0 所以继续加1 如果需要3个寄存器放数据的 add a,al ;后面加写寄存器和BL的ADC模式一样 daa al 十进制转换; mov a,0 adc a,bl ; 带C标志加 daa bl 十进制转换; jmp loop END : ret

渠县15267654421: 怎么用汇编语言编写一个16进制转换成2进制数的程序 -
巴昏洛希: 在机器内部进行科学运算时,绝大多数情况下就是二进制数,按4位分节也就是16进制数. 以下程序是将输入的10进制数转为机内的二进制(或16进制), 再以二进制形式在屏幕上输出.供参考.code segmentassume cs:codeorg 100h ...

渠县15267654421: 怎么用汇编语言数一个16进制的数的位数??? 急急急!!!在线等!!!说的无错误一定加分!!! -
巴昏洛希: ;8086 asm;edit by bj.ny.j8s.hqy;2013.1;宏定义部分=PRINT...

渠县15267654421: 汇编语言:编写一个程序把一个64位二进制数用十六进制形式在屏幕上显示
巴昏洛希: disp proc near ;显示16进制数(字母大写)子程序,入口:BX寄存器存有二进制待显示数 mov dl,bh mov cl,4 shr dl,cl cmp dl,10 jc hex1 add dl,30h hex1: add dl,37h mov ah,02h int 21h mov dl,bh and dl,0fh cmp dl,10 jc hex2 add dl,30h hex2: add dl...

渠县15267654421: 汇编语言程序设计教程 16进制数转换成十六进制asc2码输出..... -
巴昏洛希: 你好 汇编好久不用了 给你两个子程序 自己组合吧 (14) 标号: HASC 功能:单字节十六进制数转换成双字节ASCII码 入口条件:待转换的单字节十六进制数在累加器A中.出口信息:高四位的ASCII码在A中,低四位的ASCII码在B中.影响资...

渠县15267654421: 用汇编语言编写一个子程序,用于将一个16进制数输出到屏幕上(如2B3CH) -
巴昏洛希: show:mov bx,ax;in mov cx,0404h loop0:rol bx, cl mov dl,bl and dl,0fh cmp dl,10 jb _9 add dl,'A'-10 jmp _out _9:add dl,'0' _out:mov ah,2 int 21h dec ch jnz loop0 ret

渠县15267654421: 求编写一8086汇编程序,将2个字节的二进制数,变换成用ASCII码表示的四位十六进制数(用四字节表示). -
巴昏洛希: ;-------------------------------------------- DATA SEGMENT PROMPT DB 'INPUT HEXADECIMAL: $' HEX DB 5 NNN DB 0 ;实际输入的字符数DB 5 DUP(?) BIN DW ? ERR DB 0AH, 0DH, 'ERROR ! I HAVE NO TIME TO PLAY WITH YOU ! $' DATA ...

渠县15267654421: 汇编语言10进制怎么转化为16进制 -
巴昏洛希: 除以十六,得到一个余数和商,然后把商作为被除数,再除以十六,再得一个余数,一直进行下去,直到商数为0,然后把余数按倒序的方法排列起来,得到的数就是十六进制数.

渠县15267654421: 汇编语言:8086系统中,地址线20位,用十六进制表示地址范围,段地址与偏移地址为F000:0100,物理地址为? -
巴昏洛希: f0100

渠县15267654421: 汇编语言十进制转十六进制 -
巴昏洛希: ;/******************************************/ ;/*输入十进制数字.转成16进制输出 ;/*这是我刚写的,用DX存输入结果,所以最大65535,如果你想更大可以用栈或者数据段来存 ;/*按照你的思路来做的. ;/*其实程序都是改出来的,所以出错并不可...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网