第5章作业

发布 2022-07-04 20:05:28 阅读 2107

第5章汇编语言程序设计。

教材习题解答。

1. 下列语句在存储器中分别为变量分配多少字节?

vr1 dw 9

vr2 dw 4 dup(?)

cont equ 10

vr3 dd cont dup(?)

vr4 db 2 dup(?,cont dup(0))

vr5 db ‘how are you?’

解】vr1:2b ; vr2:8b ; cont:1b ; vr3:40b; vr4:44b; vr5:12b

2. 根据下列数据定义,写出各条指令执行后的结果。

table dw 100 dup(?)

array db ‘abcd’

res db ?

1) mov ax,type res ax=(

2) mov bx,type table bx=(

3) mov cx,length table cx=(

4) mov si,size table si=(

5) mov di,length array di=(

解】(1) ax=1 (2) bx=2 (3) cx=100 (4) si=200 (5) di=4

3. 下面定义的是一个数据段,请图示它们在存储器中的存放形式。

data segment

a db 1,2,3,4

b db ‘abcd’

c db 4 dup(0)

n equ 12

x dw 33,0302h

y dd 0abcdh

data ends

解】注:括号中为段内偏移地址。

4. 试定义一个完整的数据段,首先将10个压缩的bcd码29存放在array变量字节单元,紧接着把-28,6,45,39,3存放在alpha数组变量的字单元中,最后从字节变量buffer单元开始预留100个空单元备用。

解】data segment

array db 10 dup(29h)

alpha dw -28,6,45,39,3

buffer db 100 dup(?)

data ends

5. 请定义一个结构,描述一个学生的简况。该结构应含有以下内容:姓名、年龄、性别、籍贯、民族、入学成绩、名次。说明如何定义结构变量和引用结构变量。

解】student struc

name dw 5 dup(?)

age db (?

sexdw (?

homepla dw 10 dup(?)

race dw 5 dup(?)

grade db (?

sort db (?

student ends

定义结构变量的格式:结构变量名结构名 〈字段值表〉

例如:stu1 student 〈1,‘zhang’〉

引用结构变量的格式:结构变量名.结构字段名,例如:

6. 实现满足下面要求的宏定义。

1) 任意两个单元中的数据相加存于第三个单元中。

2) 任意8位寄存器中的数据转换为ascii码并在屏幕上显示。

解】(1) 宏定义的**段如下:

addm macro m1,m2,m3

mov ax,[m1]

add ax,[m2]

mov [m3],ax

endm2) 设8位寄存器存储的是无符号数,最高位是百位。宏定义的**段如下:

addm macro y形式参数y代表一个8位寄存器。

mov al,y

xor ah,ah

mov dl,100

div dl

add al,30h

mov dl,al

mov al,ah存余数。

mov ah,2

int 21h显示百位数。

xor ah,ah

mov dl,10

div dl

add al,30h

mov dl,al

mov al,ah存余数。

mov ah,2

int 21h显示十位数。

add al,30h

mov dl,al

mov ah,2

int 21h显示个位数。

endm7. 对下面程序进行注释,并说明其功能。

data segment

a db ‘123abc’

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

lea bx,a

mov cx,6

mov ah,2

lp: mov al,[bx]

xchg al,dl

inc bx

int 21h

loop lp

mov ah,4ch

int 21h

code ends

end start

解】注释如下:

data segment数据段开始。

a db ‘123abc’

data ends数据段结束。

code segment**段开始。

assume cs:code,ds:data

start: mov ax,data

mov ds,ax ;装填数据段。

lea bx,a传送变量的地址。

mov cx,6

mov ah,2

lp: mov al,[bx]

xchg al,dl

inc bx

int 21h系统功能调用,功能号:2 ,将字符、“a”、“b”、“c”送屏幕显示。

loop lpcx=6,循环6次。

mov ah,4ch

int 21h返回dos

code ends**段结束。

end start源程序结束。

程序的功能:显示从a开始的6个字节单元中的字符。

8. 编程将cx、dx作为双字联合右移四位(设cx为高16位),最高4位送入全1。

解】程序**如下:

code segment**段开始。

assume cs:code

start: mov ax,cx

mov cx,4

lpshr ax,1

rcr dx,1

loop lp

or ax,0f000h

mov cx,ax

mov ah,4ch

int 21h返回dos

code ends**段结束。

end start源程序结束。

9. 编程把从a单元开始存放的3个单字节无符号数按递增顺序排序后存回原处。

解】程序**如下:

data segment数据段开始。

a db 3 dup(?)

data ends数据段结束。

code segment**段开始。

assume cs:code,ds:data

start: mov ax,data

mov ds,ax装填数据段。

lea bx,a传送变量的地址。

mov al,[bx]

cmp al,[bx+1]

jae ex1bx]>[bx+1],交换。

cmp2: cmp al,[bx+2]

jae ex2bx]>[bx+2],交换。

jmp cont1

ex1: xchg al,[bx+1]

xchg al,[bx]

mov al,[bx]

jmp cmp2

ex2: xchg al,[bx+2]

xchg al,[bx]

mov al,[bx]

cont1: mov al,[bx+1]

cmp al,[bx+2]

jb cont2

xchg al,[bx+2bx+1]>[bx+2],交换。

xchg al,[bx+1]

cont2: mov ah,4ch

int 21h返回dos

code ends**段结束。

end start源程序结束。

10. 试编写一段程序比较从array开始存放的3个16位有符号数。根据比较结果置flag标志。

1) 如果3个数都不相等,置flag为0。

2) 如果3个数中有2个数相等,置flag为1。

3) 如果3个数都相等,置flag为2。

解】程序**如下:

data segment数据段开始。

array dw 3 dup(?)

flag db ?

data ends数据段结束。

code segment**段开始。

assume cs:code,ds:data

start: mov ax,data

mov ds,ax装填数据段。

lea bx,array传送变量的地址。

mov ax,[bx]

cmp ax,[bx+2]

je equ1bx]=[bx+2],执行mov dl,1

mov dl,0

jmp cont1

equ1: mov dl,1

cont1: cmp ax,[bx+4]

je equ2bx]=[bx+4] ,dl+1

jmp cont2

equ2: add dl,1

cont2: mov ax,[bx+2]

cmp ax,[bx+4]

je equ3

jmp cont3

equ3: add dl,1

cont3: cmp dl,3

jnz equ4bx]=[bx+2]=[bx+4] ,dl-1

sub dl,1

equ4: mov flag,dl

mov ah,4ch

int 21h返回dos

code ends**段结束。

end start源程序结束。

11. 分析下列程序,指出运行结果。

data segment

sum dw ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

xor ax,ax

mov cx,10

mov bx,2

lpadd ax,bx

inc bx

inc bx

loop lp

mov sum,ax

mov ah,4ch

int 21h

code ends

end start

请问:1) 该程序完成的功能是。

2) 程序执行后,sum单元的内容是。

解】1) 该程序完成的功能是计算0~20的偶数和。

第5章作业

微观经济学 第五章成本理论作业。一 概念题。机会成本 显性成本 隐性成本 短期总成本 沉没成本 会计利润 经济利润 正常利润 超额利润 固定成本 可变成本 平均固定成本 平均可变成本 边际成本 长期总成本 长期平均成本 长期边际成本。二 单项选择题。1 d 经济中短期与长期的划分取决于 a.时间长短...

第5章作业

作业5 1 已知两个浓度值,计算速率常数。某场地的土壤被泄漏的汽油污染,污染源去除10天之后,采集土壤样品,测试污染物浓度为1200 mg kg。20 天之后采集第二个样品,浓度下降到800 mg kg。假设一系列反应,包括挥发 生物降解和氧化都是一级反应。计算在不采取任何修复措施的前提下,需要多长...

第5章作业

5.6 思考题与习题。2.试编写一段对中断系统初始化的程序,使之允许 int0,int1,t0和串行口中断,且使t0中断为高优先级中断。初始化程序 mov ip,00000010b mov ie,10010111b 或。setb pt0 setb es setb ex1 setb et0 setb ...