汇编语言离线作业2

上传人:豆浆 文档编号:861492 上传时间:2017-05-19 格式:DOC 页数:6 大小:93.50KB
返回 下载 相关 举报
汇编语言离线作业2_第1页
第1页 / 共6页
汇编语言离线作业2_第2页
第2页 / 共6页
汇编语言离线作业2_第3页
第3页 / 共6页
汇编语言离线作业2_第4页
第4页 / 共6页
汇编语言离线作业2_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《汇编语言离线作业2》由会员分享,可在线阅读,更多相关《汇编语言离线作业2(6页珍藏版)》请在金锄头文库上搜索。

1、离线作业 2 答案2.22、判断下列程序段跳转的条件 (1) XOR AX,1E1EH JE EQUAL (2)TEST AL,10000001B JNZ THERE (3) CMP CX,64H JB THERE(1)(1) xor ax,1e1eh je equal ;AX1e1eh(异或后为 0) (2)test al,10000001b jnz there ;AL 的 D0或 D7至少有一位为 1 (3) cmp cx,64h jb there ;CX(无符号数) 64h XOR 2.24、假设 AX 和 SI 存放的是有符号数,DX 和 DI 存放的是无符号数,请用比较指令和条件转移

2、指令实现以下判断: (1)若 DX DI,转到 ABOVE 执行; (2)若 AX SI,转到 GREATER 执行; (3)若 CX = 0,转到 ZERO 执行; (4)若 AXSI 产生溢出,转到 OVERFLOW 执行; (5)若 SIAX,转到 LESS_EQ 执行; (6)若 DIDX,转到 BELOW_EQ 执行。(1)若 DX DI,转到 above执行 cmp dx,di ja above ;jnbe above (2)若 AX SI,转到 greater执行 cmp ax,si jg greater ;jnle greater (3)若 CX = 0,转到 zero执行 c

3、mp cx,0 jcxz zero jz zero (4)若 AXSI 产生溢出,转到 overflow执行; cmp ax,di jo overflow (5)若 SIAX,转到 less_eq执行; cmp si,ax cmp ax,si jle less_eq jge less_eq (6)若 DIDX,转到 below_eq执行。 cmp di,dx cmp dx,di jbe below_eq jae below_eq (1)若 D2.26、按照下列要求,编写相应的程序段: (1)起始地址为 STRING 的主存单元中存放有一个字符串(长度大于 6),把该字符串中的第 1 个和第 6

4、 个字符(字节量)传送给 DX 寄存器。 (3)编写一个程序段,在 DX 高 4 位全为 0 时,使 AX = 0;否则使 AX = -1。 (6)已知字符串 STRING 包含有 32KB 内容,将其中的$符号替换成空格。 (7)有一个 100 个字节元素的数组,其首地址为 ARRAY,将每个元素减1(不考虑溢出)存于原处。 (8)统计以 $ 结尾的字符串 SRTING 的字符个数。(1) (1) 起始地址为 string 的主存单元中存放有一个字符串(长度大于 6) ,把该字符串中的第 1 个和第 6 个字符(字节量)传送给 DX 寄存器。mov si,0 mov dl,stringsi

5、;第 1个字符送 dl寄存器 mov si,5 mov dh,stringsi ;第 6个字符送 dh寄存器 (2) 从主存 buffer 开始的 4 个字节中保存了 4 个非压缩 BCD 码,现按低(高)地址对低(高)位的原则,将它们合并到 DX 中。xor si,si ;si 清零 mov al,buffersi ;第一字节 inc si mov ah,buffersi ;第二字节 mov cl,4 shl ah,cl ;BCD 码移到高半字节 or al,ah ;组合成压缩 BCD码 mov dl,al ;存入 dl寄. inc si mov al,buffersi ;第三字节 inc

6、si mov ah,buffersi ;第四字节 mov cl,4 shl ah,cl ;BCD 码移到高半字节 or al,ah ;组合成压缩 BCD码 mov dh,al ;存入 dh寄. (3) 编写一个程序段,在 DX 高 4 位全为 0 时,使 AX = 0;否则使 AX = -1。test dx,0f000h jz zero mov ax,-1 jmp done zero: mov ax,0 done: ret (4) 有两个 64 位数值,按“小端方式” 存放在两个缓冲区 buffer1 和 buffer2 中,编写程序段完成 buffer1buffer2 功能。lea bx,b

7、uffer1 lea dx,buffer2 mov cx,8 ;8 个字节 xor si,si ;si=0 clc ;CF=0 (5) 假设从 B800h : 0 开始存放有 100 个 16 位无符号数,编程求它们的和,并把 32 位的和保存在 DX.AX 中。mov ax,0b800h mov ds,ax ;段地址 xor si,si ;地址偏移量 si=0 xor dx,dx ;和的高字 dx=0 mov cx,99 ;加的次数 mov ax,si ;第一个数 again: inc si ;指向下一个字单元 inc si add ax,si ;加下一个数 jnc noc ;无进位转 in

8、c dx ;有进位 dx=dx+1 noc: dec cx ;次数-1 jnz cx,again ;非 0继续加 ret (6) 已知字符串 string 包含有 32KB 内容,将其中的$符号替换成空格。 mov si,offset string mov cx,8000h ;32k=215=8000h again: cmp si,$ jnz next mov si,20h ;if si=$ si- next: inc si loop again (7) 有一个 100 个字节元素的数组,其首地址为 array,将每个元素减 1(不考虑溢出)存于原处。xor si,si ;si-0 mov c

9、x,100 ;循环次数 again: dec arraysi dec cx jnz again (8) 统计以 $ 结尾的字符串 srting 的字符个数。xor si,si ;si-0 coun: cmp stringsi,$ je done inc si jmp coun done: ret 3.9、假设 MYWORD 是一个字变量 ,MYBYTE1 和 MYBYTE2 是两个字节变量,指出下列语句中的错误原因。 (1) MOV BYTE PTR BX,1000 (2) MOV BX,OFFSET MYWORDSI (3) CMP MYBYTE1,MYBYTE2 (4) MOV AL,MY

10、BYTE1+MYBYTE2 (5) SUB AL,MYWORD (6) JNZ MYWORD(1) (1) mov byte ptr bx,1000 ;1000 超出了一个字节范围 (2) mov bx,offset mywordsi;寄存器的值只有程序执行时才能确定, ;而 offset是汇编过程计算偏移地址,故无法确定 ;可以改为 lea bx,mywordsi (3) cmp mybyte1,mybyte2 ;两个都是存储单元,指令不允许 (4) mov al,mybyte1+mybyte2 ;变量值只有执行时才确定,汇编过程不能计算 (5) sub al,myword ;字节量 AL与

11、字量 myword,类型不匹配 (6) jnz myword ;Jcc 指令只有相对寻址方式,不支持间接寻址方式 3.22、在 SMALL 存储模式下,简化段定义格式的代码段、数据段和堆栈段的缺省段名、定位、组合以及类别属性分别是什么?段定义伪指令 段名 定位 组合 类别 组名 .CODE _TEXT WORD PUBLIC CODE .DATA _DATA WORD PUBLIC DATA DGROUP .STACK STACK PARA STACK STACK DGROUP 3.25、按下面要求写一个简化段定义格式的源程序 (1) 定义常量 NUM,其值为 5;数据段中定义字数组变量 DA

12、TALIST,它的头 5 个字单元中依次存放-1、0 、2、5 和 4,最后 1 个单元初值不定; (2) 代码段中的程序将 DATALIST 中头 NUM 个数的累加和存入 DATALIST的最后 1 个字单元中。(1) 定义常量 num,其值为 5;数据段中定义字数组变量 datalist,它的头 5 个字单元中依次存放-1、0、2、5 和 4,最后 1 个单元初值不定; (2) 代码段中的程序将 datalist 中头 num 个数的累加和存入 datalist 的最后 1 个字单元中。.model small .stack .data num equ 5 datalist dw -1,0,2,5,4,? .code .startup mov bx,offset datalist mov cx,num xor ax,ax again: add ax,bx inc bx inc bx loop again mov bx,ax .exit 0 end

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

当前位置:首页 > 高等教育 > 习题/试题

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