《汇编语言与接口技术》习题解答(第三章) 下载本文

--------------------------可以编辑的精品文档,你值得拥有,下载后想怎么改就怎么改---------------------------

==========================================================

习题3.10问题:?画图说明下列语句分配的存储空间及初始化的数据值解答:(1)byte_varDB 'ABC',10,10h,'EF',3 DUP(-1,?,3 DUP(4))‘A’‘B’‘C’1010h‘E’‘F’-1-444...41h42h43h0ah10h45h46hffh-04h04h04h(2)word_varDW 10h,-5,3 DUP(?)10h0FBhFFh----10h

3个--? -5??3.16 解:

3.18 解:

done:

3.19 解:

bufX signX

mov ah,1 int 21h sub al,20h mov dl,al mov ah,2 int 21h

;只允许输入小写字母 ;转换为大写字母

;显示

mov ax, bufX cmp ax, bufY jge done mov ax, bufY mov bufZ, ax

.model small .stack .data dw -7 db ? .code .startup cmp bufX,0 ;test bufX,80h

--------------------------可以编辑的精品文档,你值得拥有,下载后想怎么改就怎么改---------------------------

==========================================================================

--------------------------可以编辑的精品文档,你值得拥有,下载后想怎么改就怎么改---------------------------

==========================================================

next: done:

3.20 解:

mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl

next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h

3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。

;wjxt322.asm .model small .stack .data

b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据 num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.30 解: lucase proc push bx mov bx,offset string

--------------------------可以编辑的精品文档,你值得拥有,下载后想怎么改就怎么改---------------------------

==========================================================================

jl next ;jnz next mov signX,0 jmp done mov signX,-1 .exit 0 end

--------------------------可以编辑的精品文档,你值得拥有,下载后想怎么改就怎么改---------------------------

==========================================================

cmp al,0 je case0

cmp al,1 jz case1 cmp al,2 jz case2 jmp done

case0: cmp byte ptr [bx],0 je done cmp byte ptr [bx],’A’ jb next0 cmp byte ptr [bx],’Z’ ja next0 add byte ptr [bx],20h next0: inc bx jmp case0

case1: cmp byte ptr [bx],0 je done cmp byte ptr [bx],’a’ jb next1 cmp byte ptr [bx],’z’ ja next1 sub byte ptr [bx],20h next1: inc bx jmp case1

case2: cmp byte ptr [bx],0 je done cmp byte ptr [bx],’A’ jb next2 cmp byte ptr [bx],’Z’ ja next20 add byte ptr [bx],20h jmp next2

next20: cmp byte ptr [bx],’a’ jb next2 cmp byte ptr [bx],’z’ ja next2 sub byte ptr [bx],20h next2: inc bx jmp case2 done: pop bx ret lucase endp

--------------------------可以编辑的精品文档,你值得拥有,下载后想怎么改就怎么改---------------------------

==========================================================================