|
![]() | 作者: jzit_wmm [jzit_wmm]
![]() |
登录 |
.MODEL .DATA ASCII DB NUL SOH STX ETX EOT ENQ ACK BEL BS HT LEN EQU $-ASCII BCD DB 0 1 2 3 4 5 6 7 8 9 ARRAY DB 9 DUP(?) .CODE ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX PUSH AX PUSH BX PUSH SI PUSH DI MOV AX,0 LEA BX,ASCII LEA SI,BCD LEA DI ARRAY MOV CX,LEN GOON: LODSB XLAT ASCII STOSB LOOP GOON MOV AH,4CH INT 21H CODE ENDS END START ![]() |
地主 发表时间: 05-05-11 21:32 |
![]() | 回复: 286 [unique] ![]() |
登录 |
.MODEL DATA SEGMENT ASCII DB '0','1','2','3','4','5','6','7','8','9' <---------------- LEN EQU $-ASCII BCD DB 0,1,2,3,4,5,6,7,8,9 <---------------- ARRAY DB 9 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX PUSH AX PUSH BX PUSH SI PUSH DI MOV AX,0 LEA BX,ASCII LEA SI,BCD LEA DI,ARRAY <---------------- MOV CX,LEN GOON: LODSB XLAT ASCII STOSB LOOP GOON MOV AH,4CH INT 21H CODE ENDS END START |
B1层 发表时间: 05-05-12 08:52 |
![]() | 回复: jzit_wmm [jzit_wmm] ![]() |
登录 |
还有点疑问,为什么ASCII码要那样写,我可是照着书上写的。另外,我想改造一下程序,ASCII码是由键盘输入的,我想把程序设计成 由键盘输入码值,然后回车,得到 BCD码 ,怎么改啊,给个提示。![]() |
B2层 发表时间: 05-05-12 11:18 |
![]() | 回复: 286 [unique] ![]() |
登录 |
ASCII DB NUL SOH STX ETX EOT ENQ ACK BEL BS HT 如果是书上的,这些符号此前肯定有说明,你没注意到。 换成输入的也简单,输入部分由int 21h中断完成,显示部分也由int 21h中断完成即可。 输入是9号功能调用,显示是11号调用。(七八年没看过了,可能不对,请参阅相关资料。) |
B3层 发表时间: 05-05-12 11:22 |
![]() | 回复: jzit_wmm [jzit_wmm] ![]() |
登录 |
BCD码又叫二-十码,0-9跟十六进制一样。所以BCD码加上30h就等于ASCII码的十六进制。 |
B4层 发表时间: 05-05-13 16:46 |
![]() | 回复: jzit_wmm [jzit_wmm] ![]() |
登录 |
我又改了一下。 .MODEL SMALL .DATA ASCII DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H LEN EQU $-ASCII BCD DB 0,1,2,3,4,5,6,7,8,9 ARRAY DB 10 DUP(?) .CODE ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX PUSH AX PUSH BX PUSH SI PUSH DI MOV AX,0 LEA BX,ASCII LEA SI,BCD LEA DI,ARRAY MOV CX,LEN GOON: LODSB XLAT ASCII STOSB LOOP GOON MOV AH,4CH INT 21H END START |
B5层 发表时间: 05-05-13 16:54 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号