字符显示
- 题目:输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符。
- 要求:程序从键盘接收用户输入的一个字符后,然后分别找出它的前导字符和后续字符,再按顺序显示这三个字符。在用户输入和显示字符之前都要有相应的提示信息。
- 提示:从AL寄存器得到它的ASCII码,它的前导字符和后续字符的ASCII码分别比它的ASCII码少1或多1。然后分别显示这三个字符。
知识覆盖:计算机数据的存储方式。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
以上代码运行完整。