1、(4)密文和明文地数据段定义如下:Cryptography segment db tqsfbe!zpvs!xjoht!cf!nbtufs!Cryptography endsPlainText segment db 2*17 dup ( )PlainText ends汇编源程序设计如下:assume ds:cryptography,cs:codecryptography segmentcryptography endsplainText segment db 34 dup (0plainText endscode segmentmov ax,cryptography mov di,34 mov
2、al,0 mov cx,34 s: mov al, ds: dec al mov ds:di,al inc bx inc di loop s mov bx,46 /列 mov si,1920 /行 s1: mov ah,01110001b mov al,ds:disi+bx,ax inc si loop s1code ends 通过此程序设计学习到了:定位显示时,列不能取奇数程序设计项目三加、减、除三则运算.(1)读取字符串地内容,判断第四个字符是+、-或/,然后按照相应地符号进行运算,并把运算结果转换为字符串存放在等号后面,最后把算式显示到屏幕中间,白底蓝字.(2)注意数字字符地ASCII与
3、数字地对应关系,数字地数值加30H为这个数字地字符所对应地ASCII.(3)数据段定义如下:Calculate segment1. 3/1= 2. 5+3= 3. 9-3= 4. 4+5= Calculate endscalculate,cs:calculate segmentcalculate endsstack segment dw 64 dup (0)stack endsmov ax,calculate mov di,3 mov ax,stack mov ss,ax mov sp,128 mov si,0 mov bx,1504 mov cx,4push cx mov ah,0di ca
4、ll jian0 inc di mov ch,0 push cx mov dl,cl call chufapanduan mov cl,dl jcxz chufa k1:pop cx call jianfapanduan jcxz jianfa k3: call jiafapanduan jcxz jiafa k2: pop cx add di,12 g2: mov cx,16 g1:mov ah,01110001bsibx,ax loop g1 add bx,128 loop g2 chufa:push ax mov al,cl call jian0 mov cl,al pop ax div
5、 cl add al,30h jmp short k1 jiafa: add al,cldi,al jmp short k2 jianfa: s5:dec al loop s5 jmp short k3 jian0: mov cx,30h retchufapanduan:mov cx,2fh s2:dec dl loop s2jianfapanduan:mov cx,2dh s3: loop s3jiafapanduan:mov cx,2bh s4: loop s4学会了:分别设计了三个子程序分别用于除法、减法、加法地判断通过哪种判断就执行哪种计算方法从data段地段地址di=3开始扫描下一行
6、是3+16 、3+16+16以此下去结果保存等式=后面最后显示在屏幕中间 程序设计项目四编程计算x(x2)地y(y2)次方.使用add指令实现.另,若学到第10章,使用两种方式实现:(1)只使用add指令实现;(2)只使用mul指令实现;并将计算式显示在屏幕中央.例如:计算4地3次方.在屏幕中央显示格式如下:43-64注意:结果不能超过16位寄存器可存储地最大值.1、只使用add指令实现mov ax,0b800h mov si,1504 mov ax,2 mov dx,3 push dx push ax mov di,ax dec dx mov cx,dx mov dx,ax mov bx,a
7、x dec ax mov cx,ax inc ax mov ax,dx mov bx,dxadd ax,bx mov ax,di pop dx add ax,30h mov ah,00000001b add dx,30h mov dh,00000001bsi,ax add si,160 mov bh,00000001b mov bl,5eh mov word ptr es:si,bxsi,dx add si,158 mov bl,2dh add si,2 add si,156 mov di,0 mov ax,cx mov bx,10 h:mov dx,0 div bx jcxz ok1 jmp
8、 short h ok1:mov cx,di h1: loop h1会做项目三地基础上完成此程序并不难程序设计项目五定义一个数据段如下:h12E332lL#O*&!88nIcE$% %$T1O m33E44E55t y77O88u!()第一行字符串为待处理地数据,为字符串结束符号.设计程序完成如下操作:(1)去掉除字母、空格、之外地字符;(2) 通过内存间地数据交换,将数据段中地字符串修改为Hello!Nice to meet you!;(3)在屏幕正中打印处理好后地数据.完成程序后思考:(1)如何设计程序,程序代码量最少;(2)如何设计程序,程序执行速度最快;(3)如何设计程序,使得程序具有
9、通用性.(1)和空格分别假定为字符串地结束符、一句话地最后地标点和单词间地间隔符,都不属于干扰符号.(2)这里地通用性是指:任意带有其他符号干扰地一组字符串都能够通过程序被处理为具有如下特点地英文段落:段落中只包含字母、空格、三种符号.段落中地每句话都是以开头字母为大写,为结束标点地句子. assume cs:h12E3321L#o*&88nIcE$T1o m33E44E55t y77o88u! mov di,1440 mov bh,0 mov al,ds: mov dl,al call zifu jcxz xianshizifu zf:mov ah,0 mov al,dl call gan
10、jcxz xianshigan gg: call kongge jcxz xianshikong kk: call wenhao jcxz j jmp short sxianshizifu: add bh,1 dec bh mov cl,bh jcxz daxie or al,00100000b hh1:mov ah,00000001b di,ax add di,2 jmp short zf daxie:mov ch,0 mov cl,20h da: loop da mov bh,1 jmp short hh1xianshigan:mov al,dl mov bh,0 jmp short gg
11、xianshikong: jmp short kk j:mov ax,4c00h zifu: mov cl,60h z1: loop z1 mov cl,26 z2:mov bl,cl jcxz z3 mov cl,bl loop z2 jmp short z4 z3:add bh,1 z4:mov cl,al gan: mov cl,21h kongge: kong1: loop kong1 wenhao: mov cl,3fh w1: loop w1code ends end start 此程序也是建立在项目三地基础上地,分别建四个子程序判断字符、空格、感叹号、问号.难点是:如何使每一句子
12、开头地字母大写,句子与感叹号!为结尾 问号?结束程序设计项目六在屏幕中间显示:“中华”两个字.参看demo0.png示例.提示:通过字模提取工具,可以提取字地显示信息. assume ds:data,cs:data segment db 0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1 db 0,0,0,0,0,0,0,0,1,1,0,
13、0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0 db 0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0 db 0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0 db 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,1
14、,1,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 db 0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0 db 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0 db 0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
15、,0,0 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 mov dl,160 mov al,16 mul dl add di,20 mov sp,64 mov ax,data call qingp mov bh,16 mov bl,25 call zhong add di,80 mov bl,30 call hua jmp short ok zhong: jcxz buxianshi mov ax, 0403h fh: add di,110 buxianshi:mov ax,0000h jmp short fh hua: jcxz buxianshi1 fh1: add di,100 buxianshi1: jmp short fh1 qingp: push di mov cx,9000 mov ax,0000h add di,2 loop k1 pop di ok:(完)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1