写一个程序显示所按字符集对应的ASCII码先用2位十六进制数显示ASCII码,然后再用八进制数显示ASCII码
答:
;----------------------------------------------------
assume cs:code,ss:stack
stack segment stack
dw 128 dup (0)
stack ends
code segment
start:
mov ah,1
int 21h
and ax,0ffh
push ax
call crlf
pop ax
call hex
push ax
mov dl,'H'
mov ah,2
int 21h
call crlf
pop ax
call octal
mov dl,'Q'
mov ah,2
int 21h
mov ah,4ch
int 21h
;
hex proc
xor ah,ah
mov cl,4
mov si,2
a: rol al,cl
push ax
and al,0fh
cmp al,10
jb a1
add al,37h
a1: add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
dec si
cmp si,0
jz ok
jmp a
ok: ret
hex endp
;
octal proc
xor ah,ah
mov bl,8
mov cx,0
b:
div bl
inc cx
mov dl,ah
xor dh,dh
push dx
cmp al,8
jb b1
xor ah,ah
jmp b
b1: and ax,0fh
push ax
inc cx
b2: pop dx
add dx,0030h
mov ah,2
int 21h
loop b2
ret 2
octal endp
;
crlf proc
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
;
code ends
end start
;----------------------------------------------------
- [somniumchase] 我一运行就说没有数字 01/01 11:44
- [游客] 为什么啊 08/07 15:36
- [游客] 如果想快一些 就改下面这里 dx值改成1H delay: push ax 04/19 02:53
- [lshhjx] 注释在程序中很重要,楼主不知道吗? 12/08 13:40
- [biaggi] 看不明白,在下還須學習 11/06 08:11
- [游客] 我运行的时候直接显示Unkown filename跳出了- -请问怎么改 06/16 21:44
- [游客] 勿庸置疑,注释是好习惯。与人方便自己方便。 04/12 10:33
- [游客] 老实说,看着真心累呀! 04/07 18:37
- [游客] 很无语,初学者就多看书,不要动不动要别人注释,基础打好了,再自己注释,这样比别人帮你注释好得多 12/17 19:43
- [dgkepu] 初学者:不懂,希望有多点注释带着学习学习! 12/07 20:52
- [游客] windows 7是一个64Bit操作系统,它不兼容DOS,无法识别16Bit系统。重装系统wind 02/28 21:05
- [游客] windows 7是一个64Bit操作系统,它不兼容DOS,无法识别16Bit系统。重装系统wind 02/28 21:05
- [466987333] 你好,高手,我想请教一个问题。 我用的是win7操作系统,32位的,里面没有找masm目录,是不是 12/12 17:30
- [lanfioncc] 那个太高级了。。。我还有点看不懂。。不过谢谢!!! 11/27 11:23
- [yc2010] 实验16中的 table: dw sub1,sub2,sub3,sub4 可不可以改成呢? 09/11 09:08
- [yc2010] mov bl,ah mov bh,0 add bx,bx ----------->这里为 09/07 21:03
- [yc2010] 为什么要add bx,bx呢? 09/07 20:55
- [yc2010] 那是不是像table[bx],ds[bx]....等(内存单元)都是表示一个字节呢? 09/06 21:10
- [masmaster] 杨季文的《80X86汇编语言程序设计教程》 09/01 12:52
- [游客] to masmaster shl左移4位,那al传进来的4,5,6位背景色不就没了. 为什 09/01 11:00