云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 汇编语言程序设计方案(合工大版)考试考试参考

汇编语言程序设计方案(合工大版)考试考试参考

  • 62 次阅读
  • 3 次下载
  • 2025/6/25 14:45:31

(14) JMP [VAL] /仅在DEBUG下可以

(15) MOV BL, VAR1 AND VAL / VAR1 AND VAL须用指令实现资料个人收集整理,勿做商业用途 (16) MOV BX, VAL AND 0FH (17) MOV BX, VAL LT 0FH

(18) MOV BL,LAB+VAR1 / MOV BL,VAR1

4.2 画图说明下列数据定义语句所示内存空间的数据,并回答寄存器的值。

ORG 0

ARRAY LABEL BYTE

DA1 DW 2,9,14,3,315H,-6 DA2 DB 7,‘ABCDEDFG’

LEN = $-DA2 ORG 100H DA3 DW DA4

DA4 DB 4 DUP(2 DUP(1,2,3),4)

MOV AL,ARRAY+2 (AL)=( )H ADD AL,DA2+1 (AL)=( )H MOV AX,DA2-DA1 (AX)=( )H MOV BL,LEN (BL)=( )H MOV AX, DA3 (AX)=( )H MOV BX, TYPE DA4 (BX)=( )H MOV BX, OFFSET DA4 (BX)=( )H MOV CX, SIZE DA4 (CX)=( )H MOV DX, LENGTH DA4 (DX)=( )H MOV BX, WORD PTR DA4 (BX)=( )H MOV BL, LEN AND 0FH (BL)=( )H MOV BL, LEN GT 5 (BL)=( )H MOV AX, LEN MOD 5 (AX)=( )H

4.3 变量和标号有哪些区别?变量和标号有哪些属性?如何获取属性值?写

出指令。

变量是为指令提供的操作数,标号是为指令提供标识,都是为了在指令中引用。它们最主要的属性有:偏移属性,段属性,类型属性。例如:资料个人收集整理,勿做商业用途 MOV BX, OFFSET VAL ;取偏移属性 MOV BX, SEG VAL ;取段属性 MOV BX, TYPE VAL ;取类型属性

4.4 指令和伪指令的区别在哪里?伪指令可以出现在代码段吗?指令可以在数据段吗?

指令只能出现在代码段,定义数据的伪指令通常在数据段。伪指令不会生成指令。

4.5 下面的程序是否有错?能否通过汇编?程序运行的结果如何?程序的真正意图是什么?应如何修改程序才能实现真正意图?资料个人收集整理,勿做商业用途 9 / 37

答:通过汇编和连接可以运行,但程序真正意图是输出ASCII码为30H~39H的字符0~9,应作修改。

CODE SEGMENT

ASSUME CS:CODE

K=30H ;改为 K DB 30H J DW 0 START: MOV DL, K MOV AH, 2 INT 21H

K=K+1 ;K=K+1是伪指令,没生成代码,改为 INC K INC J CMP J, 10 JNZ START MOV AH, 4CH INT 21H CODE ENDS

END START

4.6 用32位指令编写完整程序,并上机调试,计算V=(X+Y)*R,其中所有变

量均为64位变量,X、Y、R的具体数值由你自己确定,变量定义格式如下:资料个人收集整理,勿做商业用途 X DD ?,? Y DD ?,? R DD ?,? V DD ?,? data segment x dd 1 y dd 2 r dd 3 v dd ?,? data ends

code segment

assume cs:code,ds:data .386p start:

mov ax,data mov ds,ax mov eax,x add eax,y mov ebx,r imul ebx mov v,eax

10 / 37

mov v+4,edx mov dl,al add dl,30h mov ah,2 int 21h mov ah,4ch int 21h code ends end start

习题5

5.1 下列程序是在3个数中找出最小的数并放入AL,在括号中填入指令使其完整。

mov al,x mov bl,y

mov cl,z

cmp al,bl

( jl l1 )

xchg al,bl l1: cmp al, cl

jle l2

( xchg al,cl ) l2: ret

5.2 数据段如下:

data segment

da1 db 1,2,‘abcd’ count = $-da1

da2 db 9 dup(?)

data ends

补充括号处的指令,使得程序把DA1数据区数据移到DA2数据区。

mov ax,data

mov ds, ax

mov es,( AX ) mov cx,( COUNT )

mov si, ( OFFSET DA1 ) ( MOV DI, OFFSET DA2 ) ( REP MOVSB )

5.3 以下程序对无符号数组ARRAY的6个元素从小到大排序,补充括号处的指令。

data segment

array dw 4,3,12,56,5,8 data ends code segment

11 / 37

assume cs:code,ds:data start: ( mov ax,data ) ( mov ds, data ) mov cx, 5 l1: mov di, cx mov bx, 0

l2: mov ax, array[bx] cmp ax, array[bx+2]

( jl l3 ) xchg ax, array[bx+2] mov array[bx], ax

l3: add bx, 2

( loop l2 ) mov cx, di loop l1

mov ah, 4ch int 21h

code segment

end start

5.4 编写程序,实现从键盘输入的小写字母用大写字母显示出来。对输入须合法性检查。

code segment

assume cs:code start: push ds sub ax,ax push ax mov ah,1 int 21h cmp al,61h jb exit cmp al,7ah ja exit

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

exit:ret code ends

end start

5.5 编写程序,比较两个字符串是否相同,如果相同,则显示两个字符串,如果

不同,则显示发现不同的字符位置。资料个人收集整理,勿做商业用途 datasg segment

12 / 37

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

(14) JMP [VAL] /仅在DEBUG下可以 (15) MOV BL, VAR1 AND VAL / VAR1 AND VAL须用指令实现资料个人收集整理,勿做商业用途 (16) MOV BX, VAL AND 0FH (17) MOV BX, VAL LT 0FH (18) MOV BL,LAB+VAR1 / MOV BL,VAR1 4.2 画图说明下列数据定义语句所示内存空间的数据,并回答寄存器的值。 ORG 0 ARRAY LABEL BYTE DA1 DW 2,9,14,3,315H,-6 DA2 DB 7,‘ABCDEDFG’ LEN = $-DA2

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com