汇编实验(三)

来源:互联网 发布:广西广电网络初装费用 编辑:程序博客网 时间:2024/05/21 03:56
<span style="font-family: Arial, Helvetica, sans-serif;"><循环程序设计></span>
1.如何输出自定义变量
2.21H中断 1号输入 2号输出  (一个字符)
data segmentman db 0woman db 0COUNT equ 10disp db 0dh, 0ah, 'man or woman 1/0?', '$'disp1 db 0dh, 0ah, 'man:', '$'disp2 db 0dh, 0ah, 'woman:', '$'data endscode segmentassume cs:code, ds:data start:mov ax, data mov ds, ax mov cx, COUNTinput:mov dx, offset disp mov ah, 9int 21h mov ah, 1int 21h cmp al, '1'jz mancountcmp al, '0'jz womancountjmp input mancount:inc man jmp loopnext womancount:inc womanloopnext:loop inputmov dx, offset disp1mov ah, 9int 21h mov bx, offset man mov dl, [bx]cmp dl, 10jb hehe add dl, 7hehe:add dl, 30hmov ah, 2 int 21h  mov dx, offset disp2mov ah, 9int 21hmov bx, offset womanmov dl, [bx]cmp dl, 10jb haha add dl, 7haha:add dl, 30h mov ah, 2 int 21h mov ah,1int 21hmov ah, 4ch int 21h code ends end start 

/*矩阵相乘 * */assume cs:code, ds:data, ss:stackdata segments1 db 255, 2, 26, 251, 2, 1, 3, 4, 6, 5, 8, 9, 8, 2, 5, 7s2 db 224, 2, 7, 4re dw 4 dup(0)temp dw 0 temp1 dw 0 data endsstack segmentdw 15 dup(0)stack ends code segmentstart:mov ax, datamov ds, axmov ax, stackmov ss, ax mov sp, 0010h lea si, s1lea di, s2 lea bx, re mov dx, 0 mov cx, 4outer:push cx mov cx, 4 inner:mov al, [si]mul ds:byte ptr[di] ;结果存入axadd dx, ax inc siinc di loop innermov ds:[bx], dx mov di, 16 mov dx, 0 inc bxinc bx pop cx loop outer ;showmov cx, 4 lea si, re show:mov bx, [si]call putoutHexinc si inc si push dx push ax mov dl, 0dhmov ah, 2int 21h mov dl, 0ahmov ah, 2int 21h pop axpop dxloop show mov ax, 4c00hint 21h putoutHex proc push cxmov temp, bxmov temp1, bx  mov cl, 8shr temp, cl mov bx, tempcall main1 and  temp, 00ffhmov bx, temp1call main1pop cx retmain1 procmov al, blmov cl, 4shr al, clcmp al, 10 jb kk add al, 7kk:mov dl, al cmp dl, 0 je kk2 add dl, 30h mov ah, 2 int 21h and bl, 0fh kk2:cmp bl, 10 jb kk1 add bl, 7kk1:mov dl, bladd dl, 30h mov ah, 2 int 21h ret main1 endp putoutHex endp code endsend start

考题:

/* 将字符串中的小写字母转换为大写字母 * * */assume cs:code, ds:datadata segmentpkey db 'please input strings ','$'InStr db 20 dup(0)temp dw 0data endscode segmentstart:mov ax, datamov ds, axmov dx, offset pkeymov ah, 9int 21hpush dx push axmov dl, 0ah;回车换行mov ah, 2 int 21hmov dl, 0dhmov ah, 2 int 21hpop axpop dxmov cx, 0lea si, InStrloop1:mov ah, 1int 21hcmp al, '$'je overmov byte ptr[si], alinc siinc cxjmp loop1over:push dx push axmov dl, 0ah;回车换行mov ah, 2 int 21hmov dl, 0dhmov ah, 2 int 21hpop axpop dxlea si, InStrcompL:mov bl, [si]cmp bl, 'a'jb noLcmp bl, 'z'ja noLsub bl, 32mov dl, blmov ah, 2int 21hnoL:inc siloop compLmov ah, 1int 21hmov ah, 4chint 21hcode endsend start


0 0
原创粉丝点击