第四章习地的题目解答

上传人:cl****1 文档编号:498370699 上传时间:2023-03-16 格式:DOC 页数:11 大小:292.50KB
返回 下载 相关 举报
第四章习地的题目解答_第1页
第1页 / 共11页
第四章习地的题目解答_第2页
第2页 / 共11页
第四章习地的题目解答_第3页
第3页 / 共11页
第四章习地的题目解答_第4页
第4页 / 共11页
第四章习地的题目解答_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《第四章习地的题目解答》由会员分享,可在线阅读,更多相关《第四章习地的题目解答(11页珍藏版)》请在金锄头文库上搜索。

1、and cl, 0fhgetkey:;从键盘输入,出口 :al存键值;判键值是小写字母?;是小写字母转换为大写字习题4.3丨将AX存放器中的16位数连续4位分成一组,共4组,然后把这4组数分别放 在AL、BL、CL和DL存放器中。思路:设这四组从低位到高位分别放在AL、BL、CL和DL存放器中。仅列出代码段:mov bl, al;将al中的两组分开and al, 0fh;屏蔽高四位后送al:1101mov cl, 4;原al中的数据逻辑右移4次送blshr bl, cl;bl 内容:1111mov dl, ah;将ah中的两组分开and dl, 0f0h;屏敝低咼四位后送 dlmov cl,

2、4;原ah中的数据逻辑右移4次送dlshr dl, cl;dl:1011mov cl, ah;屏蔽高四位后送cl:0100mov ah, 1int 21hcmp al, a getkaycmp al, z ja getkay sub al,20hmov dl,al mov ah, 02h int 21h习题4.5丨用于LED数码管显示的代码表为:LEDtable DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hDB 80h,90h,88h,83h,0c6h,0c1h,86h,8eh它依次表示0 9、A F这16个数码的显示代码。现编写一个程序实现将led num中

3、的一个数字0 9、A F转换成对应的 LED显示代码。解答.model small.stack 256.dataLEDtableDB 0c0h , 0f9h , 0a4h,0b0h,99h,92h, 82h, 0f8hDB 80h , 90h, 88h, 83h, 0c6h, 0clh、86h,8ehled numDB ?.code.startupmov bx, offset LEDtablemov al, led num对应的LED显示代码;al中存有xlat.exit 0end习题4.10设变量bufX为有符号16位数,请将它的符号状态保存在signX,即:如果X大于等于0,保存0;如果X

4、小于0,保存-1 ffh。编写该程序。解答.model small.stack.databufXdw -7sig nXdb ?.code.startupcmp bufX,0;test bufX,80hjl next;jnz n extmov sig nX,0jmp donen ext:mov sig nX,-1done:.exit 0end习题4.11bufX、bufY和bufZ是3个有符号16进制数,编写一个比拟相等关系的程序:1如果这3个数都不相等,如此显示0;2如果这3个数中有两个数相等,如此显示1 ;3如果这3个数都相等,如此显示2。解答.model smallbufx.stack 2

5、56.datadw ?bufYdw ?bufzdw ?.code .startup mov ax,bufX;cmp x,y?可以吗?mov bx,bufYmov cx,bufZnext1:mov dl, 0 cmp ax,bx jnz n ext1 inc dlcmp ax,cxjnz n ext2inc dlnext2:cmp bx,cxjnz n ext3 inc dlnext3:cmp dl, 3n ext4mov dl, 2n ext4:mov ah,02h;显示int 21h.exit 0end习题4.16编程实现把键入的一个字符,用二进制形式0 / 1丨显示出它的ASCII代码值。

6、解答.model small.stack 256.datastrildb please in put,Odh,Oah,$.code.startupmov dx,offset stri1mov ah,09hint 21hmov ah, 01hint 21hmov cx, 8aga in:xor dl,dlshlal,1adc dl, O:dl=dl+ O +cf:如果 cf=0,那么 dl=30h;如果 cf=1,那么 dl=0+30h+1=31hmov ah,02hint 21hloop aga in.exit 0end.model small.stack.datastri1db please

7、 in put number:1-9,0dh,0ah,$.code.startupaga in:mov dx,offset stri1;显示mov ah,09hint 21hstri1 ,提示输入mov ah,01h;调用输入一个字符int21h;输入一个字符存在al中cmp al, 1;判该字符,女口不在1-9agai n cmp al, 9 jaaga in;重新输入and al,0fh;将31h和39h转换为1和9在 T - 9屏蔽高4位mov cl, alxor ch,ch;振铃次数送cxabc:mov dl, 07hmov ah, 02hint 21hloop abc.exit 0e

8、nd;调用一次振铃习题4.19编写计算100个正整数之和的程序。如果和不超过16位字的X围65535,如此保存其和到 wordsum,如超过如此显示overflow 。解答.model small.stack.datanumequ 100wlistdw num dup( ?)wordsumdw ?errordb overflow. $.code.startupmov bx,offset wlistmov cx,numxor ax,axaga in:add ax,bxjc n extinc bxinc bxloop aga inmov bx,axn ext:jmp done mov dx,off

9、set errordone:mov ah,9int 21h.exit 0end习题4.22丨过程定义的一般格式是怎样的?子程序入口为什么常有PUSH旨令、出口为什么有POP指令?下面的程序段有什么不妥吗?假如有,请改正:crazyPROCagain:push axxor ax,axxor dx,dx add ax,bx解答crazyadc dx,0inc bxinc bxloop aga inretENDP crazyPROC;crazy PROCpush axpush bxxor ax,ax;xor ax,axxor dx,dx;xor dx,dxagain:add ax,bx; again

10、:add ax,bxadc dx,0;adc dx,0inc bx;inc bxinc bx;inc bxloop aga in;loop aga inret;retpop bxpop axENDP crazy;crazyENDP习题4.23丨子程序的参数传递有哪些方法,请简单比拟。解答存放器、共享变量公共存储单元、堆栈用存放器传递参数是把参数存于约定的存放器中,这种方法简单易行,经常采用;用变量传递参数是主程序与被调用过程直接用同一个变量名访问传递的参数,就是利用变量传递参数。如果调用程序与被调用程序在同一个源程序文件中,只要设置好数据段存放器DS如此子程序与主程序访问变量的形式一样,也就是

11、它们共享数据段的变量,调用程序与被调用程序不在同一个源文件中,必须利用public/extern进展声明,才能用变量传递参数,利用变量传递参数, 过程的通用性比拟差,然而,在多个程序段间,尤其在不同程序的模块间,利用全局变量共享数据也是一种常见的参数传递方法;用堆栈传递参数是主程序将子程序的入口参数压入堆栈,子程序从堆栈中取出参数; 子程序将出口压入堆栈,主程序弹出堆栈取得它们。解答astobprocand dh, Ofhmov al, dhmul 10and dl, 0fhadd al, dlret astobendp习题4.28写一个子程序,根据入口参数;十位数的ASCII码转为二进制数;

12、al= 10*dh;个位数的ASCII码转为二进制数;al= 10*dh + dlAL=0/1/2,分别实现对大写字母转换成小写、小写转换成大写或大小写字母互换。欲转换的字符串在解答ChangeprocPush bx;保护bxstring 中,用0表示完毕。bxbx,al,0AL=0/1/2,;根据入cmp参数分别处理jzjzcha n_0 dec alcha n_1dec alcha n_2 jmp done mov al,stri ngbxjzchan_0:对大写字母转换成小写cmp al,0 jz do necmp al, A n ext0cmp al, Z ja n ext0add;是

13、大写字母;是大写字母实现xor;位移量清零6 / 11mov stri ngbx, al n extO:inc bx字母jmp cha n_0 cha n_1:mov al,stri ngbx对小写字母转换成大写cmp al,0jz do necmp al, an ext1cmp al, zja n ext1sub al, 20hmov stri ngbx, aln ext0:inc bx字母jmp cha n_1cha n_2:mov al,stri ngbx对大写字母转换成小写cmp al,0jz do necmp al, An ext2cmp al, Zja next20add al, 20hjmp n ext2 next20:cmp al, a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号