《2023年汇编实验报告2.docx》由会员分享,可在线阅读,更多相关《2023年汇编实验报告2.docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汇编语言程序设计实验报告(二)班级:软093班学号:.姓名:江涛指导老师:陆勤2023年1 1月mov ax, d atamo v d s a x1 ea d i, s t r ing2xo r bx, b xmov ch, 4le a d x ,st r i n g 1mov ah,9ini 21 h mov ah,l int 2 1 hcmp al,O;小于0的a s cii跳到11jbilcm p a 1 ,9;不小于9的a sci i跳到13j bel3cm p al,A;小于A的ascii跳到11jb 1 1cm p a 1,7 F;不小于F的a s ci i跳到12jbe 12cm
2、 p al,a7;小于a的ascii跳到11jbHcm p al/ f;大于f的a s cii跳到11ja 11sub al,20h;字母转换为表达的十进制数sub al,3 7 hjmpl4;16进制数转换为2进制数and al,()fh;转换得到的2进制数存入寄存器b x中mov cl,4s h 1 b x , cladd bl, ald e c chj nz 11mov c x, 16;输出得到的2进制数x o r dl, d 1rol bx, 1rcld 1 ,1add d 1 ,3 0 hm o v d i , d 1inc d iloop 15mov dkOdh;回车换行mov a
3、h,2in t 21 hmov dkOa hmo v ah, 2i n t 21 hlea dx, s t rin g 2m o v ah,9int21hm o v ah, 4chin t 2 1 hmain e n d pco d e end se nd sta r t2、调试:补充实验二从键盘输入一系列字符串(以回车符结束),按字母、数字和其他字符分类计数,最后显示出这三类的计数结果1、源代码:da t a s egmentst r i ngO d b please inpu t $;输入提醒s t rin g 1 d b the number of letter: / $s t rin
4、g 2 db the num b e r of num:, $s t rin g 3 d b the num b er of o t h ersda t a e n d sco d e s e g menta ssume cs:code, ds:dat amai n pr o c farsta r t:mov a x, d a t am o v ds,axlea d x ,st r ingOmov a h ,9int 2 1 hxorex, exx o r bl,bl10:;数字字符计数mov ah.lint2 1 hcm p al, 0 d hj z!4c mp a 1 , Oj b 1 3
5、emp a I,9jailinc chjmp 101 1:;大写字母计数c m p a 1 / A jb!3c mp al, 2jal2i nc cljm p 1012:;小写字母计数cm p a 1/ a,j b 13cmp a 1 , z j a 13i n c c 1jm p 101 3 :;其它字符计数in c b 1j mp 1 014 :1 e adx, s t ring 1;输出字母个数mov a h ,9in t 2 1 hmov d l,clo r dl, 3 Ohmov a h , 2int2 1 hmov dkOdhmov ah,2i nt 2 Ihmov dLOahmo
6、v ah,2i nt 21h1 e a dx,st r i ng2 ;输出数字个数mov ah,9in t 21 hm o v di, chor d l,30hmov ah, 2int 2 Ihmov dl,Odhmov a h,2int 21 hmov dkOahmo v a h ,2int 2 1 hlea d x ,str i ng3;输出其它字符个数mo v a h,9i nt21hmo v d Lblor dl,30hmo v ah,2in t 21hmov dkOdhmov ah, 2int 2 1 hmo v dl, Oahm o v ah,2i nt 21hmov ah ,4c
7、 hint 21hma i n endpcode e n dsend star t2、调试:D:nasn?_2_6 jiangtao999e! zimugeshu:8 shuzigeshu:3 qitazifugeshu:2 D:nasn补充实验三根据键盘输入的字符AE (或a e ),分别显示ONE 、TWO T HREE FOUR FIVE,当输入其他字符时,显示ERROR,然后重新输入1、源代码: data s e g mentst r ingO db pl e a s e in p ut:$,;提醒输入mess db Oah , Od h;ONEdb 0ah,0 d h ;TWO $d
8、b Oah,Od h ,THREE,$db 0 ah,0 d h;FOUR db Oah, 0 dh/ FIVE, $err db Oah, 0 d h/E r ror7, 0ah,0 d h,$ data ends c ode s e gmenta s sume c s: c ode, d s :d a t amain p r oc far start:mov ax,da t amov d s,axlea d x, strin g 0mov ah, 9i nt 2 1 h;输入字母mo v ah, 1in t 2 Ihc m p al, Ar ;输入字母a s c i i值小于A的报错 jb
9、 e rrorc mp a 1, Eja com pare;输入字母a scii值大于E的跳的com p are处sub al,65;输入的是小写字母a-ejmp p r in tc ompare:cmp al,a;输入字母as c i i值小于a的报错jb errorcmp al, ez;输入字母asc i i值大于e的报错ja errorsub al, 9 7jmp p rinte r r or:Ie a d x,errmov a h,9int21hj mp startpr i n t :;输出mov bh 8mu 1 bland a x,Offhlea d x,messa dd dx,a
10、xmo v a h, 09hin t 21hmov a h ,4c hi nt21h m a in endpc o de end send s ta r i2、调试:D:nasm8_3_2 please input:b TWOD:nasn8_3_2 please input:rError please input:实验一记录不同成绩段学生的人数1、程序流程图:2、源代码:d a tas segme n tarray d b 67,69 , 84 , 90,73,88,99 , 63,100,80s t r i ng 1 db The n um b er of 1 0 0:$str i n g
11、2 db Th e n u m b er of 9 0-9 9: $st r ing3 db The numbe rot 80-89:$ stri n g4 d b The numbe r o f 70-7 9:$ str ing5 db The num b er of 60-69s t ri n g6 dbt h e n u m bcr o f low 6 0:$ datas e n dsstacks segments t acks endsc o de s s egme n ta s sume c s:codes, ds: datas,ss: s t a cksstar t:mov a x
12、 , d a tasmov d s,axmov al, 0;用于计数mov bx, 0mov c x,0mov dh, Omov d I ,10;循环次数c a 11 co u ntcal I ou t pu tmo v a h, 4chint 21hc ount p r oc near;子程序一,用来记录各分数段的人数mo v si, 0next:cmp arra y si,100 ;将分数与 100 比较jz LIjl n e x t 1nextl:cmp arr a y si ,90;与90 比较j a e L2jl n e x t 2n e x t2:cm p array si ,80
13、;与80 比较ja e L3j I n e x t3nex t 3 :c mp a r raysi, 70 ;与 7 O 比较jae L4j I ne x t4 next 4:cmp arr a y s i ,60;与60比较j a e L5inc d hinc sidec dl;循环次数减1j nz nex t;若d 1尚未减少到零则回到n ext处执行jmp e xit;若为零就转到ex it处执行,退出LI:i n c al;对分数为100的学生的人进行计数inc sid e c d 1j n z n e xtjmp exitL2:incbh;对分数在90-99的学生的人进行计数inc
14、sid ec dljnz nextJ mp exitL3:i nc b I;对分数在80-89的学生的人进行计数in c s idec dlj nz nextj mp e x itL4:inc ch;对分数在70-79的学生的人进行计数inc s idec dljn z nextj m p ex i tL 5:inc cl:对分数在60-69的学生的人进行计数i nc sidec d 1jnz nextexi t:retco u n t end pou t p u t p roc n e ar;子程序二,用来揄出相关内容m ov ah, 0push d xpus h c xpu s h b x
15、p u sh a xle a d x ,stringl;输出100分的人数mo v ah, 9int 21Hpop bxmov dl, b Iadd d 1,3 0 hmov ah, 2int2 1 Hcal I enterI ea dx, str ing2mov ah,9i nt 21Hpop bxmo v dl,b hadd d 1,3 0 hmov a h, 2i nt2 1 Hcal I enterI ea d x,str i n g3mo v ah,9int 21Hmov d I , blad d dl,30hmov a h ,2in t 21Hcall enterlea dx,st
16、ring 4mov a h ,9;输出90至99分的人数;输出80至89分的人数瀚出70至79分的人数int 21Hpo p bxmov dl, bhadd d I ,30hm o v ah, 2in t 21Hcall e n t er1 e a d x , s tr i ng5mov a h ,91 n t 2 1 Hm o v d I ,bladd d 1,30 hmov ah,2i n t 21Hca I 1 e n te r1 e a d x ,str i ng6mov ah,9;输出60至69分的人数瀚出低于60分的人数int 21Hpo p bxmov dl,bhad d d I
17、 ,30hmov a h, 2int 21Hcall ente rretout put e ndpenter p r oc ne a rmov d I ,0ahmov a h ,02h;子程序三,用来在每行输出后回车换行int 21hm o v dl, Od hmo v ah,02hi nt 2 1 hrete n t er endpc ode s ends。end s tart3、调试:D:nasnscoreThe number of 100:1The number of 90-99:2 The nunber of 80-89:3The nunber of 70-79:1 The number of 60-69:3 the number of low 60:0补充实验一编制一个程序,规定在键盘上接受一个4位的16进制数,并在屏幕上显示与它等值的二进制数1、源代码:data segments tri n g 1 d b please i n p u t : $ ;提醒输入string2 db 16 d u p (?)/ $data endsc o d c s e g men ta s sume c s :co d e , d s: d at amain proc far start: