汇编语言-字符显示

字符显示

  1. 题目:输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符。
  2. 要求:程序从键盘接收用户输入的一个字符后,然后分别找出它的前导字符和后续字符,再按顺序显示这三个字符。在用户输入和显示字符之前都要有相应的提示信息。
  3. 提示:从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

以上代码运行完整。

原文地址:https://www.cnblogs.com/Forever-Kenlen-Ja/p/3734586.html