|
发表于 2011-6-10 00:03:09
|
显示全部楼层
- (1)
- 1.保持不变
- 2.<考虑不同机子环境不同,答案无法统一>
- 3.X-2,X-1
- (2)
- 1.保持不变
- 2.<考虑不同机子环境不同,答案无法统一>
- 3.X-2,X-1
- 4.(N/16+1)*16 [说明:N/16只取整数部分]
- (3)
- 1.保持不变
- 2.<考虑不同机子环境不同,答案无法统一>
- 3.X+3,X+4
- (4)
- 答:第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动以'至上向下'的顺序进行编译执行源程序。
- (5)完整程序如下:
- assume cs:code
- a segment
- db 1,2,3,4,5,6,7,8
- a ends
- b segment
- db 1,2,3,4,5,6,7,8
- b ends
- c segment
- db 0,0,0,0,0,0,0,0
- c ends
- code segment
- start:mov ax,a
- mov es,ax
- mov ax,c
- mov ds,ax
- mov bx,0
- mov cx,8
- s1:mov ax,es:[bx]
- add [bx],ax
- add bx,2
- loop s1
- mov ax,b
- mov es,ax
- mov ds,ax
- mov bx,0
- mov cx,8
- s2:mov ax,es:[bx]
- add [bx],ax
- add bx,2
- loop s2
- mov ax,4c00h
- int 21h
- code ends
- end start
- (6)完整程序如下:
- assume cs:code
- a segment
- dw 1,2,3,4,5,6,7,8
- a ends
- b segment
- dw 0,0,0,0,0,0,0,0
- b ends
- code segment
- start:
- mov ax,b
- mov ss,ax
- mov sp,10h
- mov ax,a
- mov ds,ax
- mov bx,0
- mov cx,8
- s: push [bx]
- add bx,2
- loop s
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
|
|