知识覆盖:计算机数据的存储方式。8位,16位,32位寄存器的使用选择。
这里选择了8位al,bl,cl寄存器。因为ASCII码的表示为8bit。所以处理起来也比较方便。
1 ; Example assembly language program -- 2 ; Author: karllen 3 ; Date: revised 5/2014 4 5 .386 6 .MODEL FLAT 7 8 ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD 9 10 INCLUDE io.h ; header file for input/output 11 12 cr EQU 0dh ; carriage return character 13 Lf EQU 0ah ; line feed 14 15 .STACK 4096 ; reserve 4096-byte stack 16 17 .DATA 18 promot BYTE "Please Enter a char ",cr,Lf,0 19 answer BYTE "The three char is " 20 BYTE cr,Lf,0 21 befchar BYTE 1 DUP(?) 22 char BYTE 1 DUP(?) 23 24 aftchar BYTE 1 DUP(?) 25 .CODE 26 _start: 27 output promot 28 doWh: 29 input char,1 30 cmp char,0d 31 je endWh ;只会处理最后一个字符 32 endWh: 33 mov al,char 34 sub al,1 35 mov befchar,al 36 37 add al,1 38 add al,1 39 mov aftchar,al 40 41 sub al,1 42 mov char,al 43 44 45 output answer 46 output befchar ;依次输出befchar char aftchar 47 48 49 INVOKE ExitProcess, 0 ; exit with return code 0 50 51 PUBLIC _start ; make entry point public 52 53 END ; end of source code
以上代码运行完整。
原文:http://www.cnblogs.com/Forever-Kenlen-Ja/p/3734586.html