码迷,mamicode.com
首页 > 编程语言 > 详细

寒假汇编语言作业

时间:2015-01-19 20:55:24      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

程序设计项目一

data segment

     dw ?

data ends

end

要求:

只在定义的数据段‘?‘中加入相关的内容,使得上面的程序可以在屏幕中间显示一个绿色的字符‘A‘。

 

分析:

中间位置:160*12+80=2000=7d0h  ‘A‘ =41h,绿字=02h

可以写个可以显示的,然后再DEBUG打开找到程序在内存是如何保存的,再找16进制填进去,注意高地位

技术分享技术分享

参考代码:

技术分享
 1 ;assume cs:data
 2 
 3 data segment
 4         dw  00b8h,8eb8h,0bbc0h,07d0h,41b8h,0b900h,0002h,8926h
 5         dw  2607h,4f89h,0b801h,4c00h,21cdh
 6 
 7 ;       mov ax,0b800h
 8 ;       mov es,ax
 9 ;       mov bx,7d0h
10 ;       mov ax,41h
11 ;       mov cx,02h
12 ;       mov es:[bx],ax
13 ;       mov es:[bx+1],cx
14 ;       mov ax,4c00h
15 ;       int 21h
16 
17 data ends
18 end
hj1.asm

 

程序设计项目二

对加密的字符串进行解密。

 

要求:

(1)加密的字符串放在Cryptography段。

(2)解密方法:将Cryptography段的每个字符的ASCII值减去1。

(3)用汇编语言实现程序,将Cryptography段的数据按照解密方法进行解密,将解密后的数据放在PlainText段,然后再把解密之后的字符串以白底蓝字方式显示到屏幕中间。

(4)密文和明文的数据段定义如下:

Cryptography segment

        db ‘tqsfbe!zpvs!xjoht‘

        db ‘!!cf!zpvs!nbtufs!‘

Cryptography ends

 

PlainText segment

        db 2*17 dup (‘ ‘)

PlainText ends

 

分析:

白底蓝字 = 71h

参考代码:

技术分享
 1 assume cs:code
 2 
 3 Cryptography segment
 4         db tqsfbe!zpvs!xjoht
 5         db !!cf!zpvs!nbtufs!
 6 Cryptography ends
 7 
 8 PlainText segment
 9         db 2*17 dup ( )
10 PlainText ends
11 
12 code segment
13 start:
14         mov ax,Cryptography
15         mov ds,ax
16         mov ax,0b800h
17         mov es,ax
18         mov si,0
19         mov di,7a8h     ; 160*12+40=1960=7a8h
20         mov ah,71h    
21         mov cx,34
22      s:
23         mov al,ds:[si]
24         dec al
25         mov ds:[si+48],al
26         mov es:[di],ax
27         add di,2
28         inc si
29         loop s
30 
31         mov ax,4c00h
32         int 21h
33 
34 code ends
35 end start
hj2.asm

 

程序设计项目三

   

加、减、除三则运算。

 

要求:

(1)读取字符串的内容,判断第四个字符是‘+‘、‘-‘或‘/‘,然后按照相应的符号进行运算,并把运算结果转换为字符串存放在等号后面,最后把算式显示到屏幕中间,白底蓝字。

(2)注意数字字符的ASCII与数字的对应关系,数字的数值加30H为这个数字的字符所对应的ASCII。

(3)数据段定义如下:

Calculate segment

        db ‘1. 3/1=         ‘

        db ‘2. 5+3=         ‘

        db ‘3. 9-3=         ‘

        db ‘4. 4+5=         ‘

Calculate ends

 参考代码:

技术分享
 1 assume cs:code
 2 
 3 Calculate segment
 4         db 1. 3/1=         
 5         db 2. 5+3=         
 6         db 3. 9-3=         
 7         db 4. 4+5=         
 8 Calculate ends
 9 
10 code segment
11 start:
12         mov ax,Calculate
13         mov ds,ax
14         mov si,0
15         mov cx,4
16      s:
17         push cx
18         mov ah,0
19         mov al,ds:[si+3]
20         sub al,30h
21         mov dl,ds:[si+4]
22         mov dh,ds:[si+5]
23         sub dh,30h
24         call check_symbol
25         add al,30h
26         mov ds:[si+8],al
27         add si,10h
28         pop cx
29         loop s
30    ;输出
31         mov ax,0b800h
32         mov es,ax
33         mov di,722h
34         mov ah,71h
35         mov si,0
36         mov cx,4
37       s0:
38         push cx
39         push di
40         mov cx,10h
41       s1:
42         mov al,ds:[si]
43         mov es:[di],ax
44         inc si
45         add di,2
46         loop s1
47         pop di
48         pop cx
49         add di,0a0h
50         loop s0
51 
52     mov ax,4c00h
53     int 21h
54 
55      check_symbol:
56    ;用标识符实现
57         mov cl,+
58         cmp dl,cl
59         je add_
60         mov cl,-
61         cmp dl,cl
62         je add_
63         mov cl,/
64         cmp dl,cl
65         je div_
66     ;用jcxz实现
67 ;        mov ch,0
68 ;        mov cl,dl
69 ;        sub cx,‘+‘
70 ;        jcxz add_
71 ;        mov cl,dl
72 ;        sub cx,‘-‘
73 ;        jcxz sub_
74 ;        mov cl,dl
75 ;        sub cx,‘/‘
76 ;        jcxz div_
77 
78      add_:
79         add al,dh
80         ret
81 
82      sub_:
83         sub al,dh
84         ret
85 
86      div_:
87         div dh
88         ret
89 
90 code ends
91 end start
hj3.asm

 

 

 

寒假汇编语言作业

标签:

原文地址:http://www.cnblogs.com/regconfi/p/4234655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!