字符显示
- 题目:输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符。
- 要求:程序从键盘接收用户输入的一个字符后,然后分别找出它的前导字符和后续字符,再按顺序显示这三个字符。在用户输入和显示字符之前都要有相应的提示信息。
- 提示:从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
以上代码运行完整。
时间: 2024-10-28 23:33:59