回 帖 发 新 帖 刷新版面

主题:商专汇编考试题目及答案~想要答案的~顶本帖~希望高手也来帮帮忙

题目:
一、编写单字节有符号数X和Y,求X平方及Y平方且将X平方及Y平方中的较大者送变量Z的程序。
二、数据区BUF中有三个双字节数,要求将这三个数(无符号数)按从大到小的次序重新存放在变量BUF中。
三、数据区有二个五字节无符号数D1和D2,相加后放入D3中,因考虑到相加后产生进位,D3定义为六字节数。
四、编写程序:在内存中已给出X、Y二个变量,求第三个变量Z=|X-Y|,并放入内存中。
五、将内存中变量BLKS中的5个连续字节反向传送至另一变量BLKD中。
六、编写程序求N!,要求:内存中先给出N等于几,程序运算结束后将结果也放入内存中。
七、编写一程序统计BUF字数据区中负数的个数。
八、编写一程序,用来判断BUF1和BUF2二个等长的数据区中的数据是否相同(10个数以内),相同则使变量FLAG单元置0,否则置1。
九、编写程序统计数据区中变量X下的一个字中0的个数,统计完成后将结果存入Y中。
十、编写程序将数据区中字节变量X的每一位二进制数转换为ASCII码,并将转换后的ASCII码存入Y的变量之下。
十一、编写一个程序完成自然数1----100的求和运算,结果放入内存变量Z中。
十二、将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别存入内存中变量X下的4个字节中。
十三、编写程序,求出首地址为DATA的10H字数组中最小偶数,并把它存放在变量Z中。
十四、编写统计内存字变量Z中的数据个数的程序,变量Z中数据的结束符为回车符。
十五、编写从键盘接收一个小写字母的程序,然后找出它的前导字符和后续字符分别放入内存变量X和Y中。
十六、编写一程序,将变量X下的2个字节小写字母的ASCII码数转换为大写字母在显示器上显示出来。
十七、编写比两个字符串‘STRING1’和‘STRING2’所含字符是否相同的程序,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。
十八、编写一个程序,要求从键盘接收一个四位的十六进制数,将其转换为二进制数后存入内存变量Z中。
十九、设有一段英文,其字符变量名为ENG,并以字符串$字符结束,编一程序查对单词‘SUN’在该问中出现的次数,并在显示器上显示出来。
二十、编写程序,从键盘输入一个大写字符后存入内存变量Z中,然后将其转换为小写字母并输出在显示器上。
答案在后面会陆续发出~~商专的想要汇编答案请顶~~~本人在找未发出的题目的答案~
如果有高手看到~~帮帮忙~~把其他题目的答案写一下~~我在这里代表商专的考汇编的同人谢谢你们了~~~!

回复列表 (共69个回复)

61 楼


第十二题
data segment
x dw 41h,42h,43h,44h
y dw?
data ends
code segment
stack segment
dw 100(?)
stack ends
assume ds:data,cs:code,ss:stack
start:
      push ds
      mov ax,data
      mov ds,ax
      mov ch,4
rotate:mov cl,4
      rol x,cl
      mov al,cl
      dec ch
      jnz rotate
      mov ax,4c00h
      int 21h
code ends
  end start

62 楼

五、将内存中变量BLKS中的5个连续字节反向传送至另一变量BLKD中。
十五、编写从键盘接收一个小写字母的程序,然后找出它的前导字符和后续字符分别放入内存变量X和Y中。
高手帮忙~~谢谢~~。

63 楼

第十五题

.model small
.386
.code
MAIN PROC FAR
start:
push ds
sub ax,ax
push ax

input:
mov ah,7H
int 21H
cmpe:

cmp al,20H
JE exit

cmp al,61H
JL input

cmp al,7AH
JG input
print:
sub al,01H
mov dl,al
mov ah,02H
int 21H

add al,01H
mov dl,al
mov ah,02H
int 21H

add al,01H
mov dl,al
mov ah,02H
int 21H

;输出换行回车
mov dl,0AH
mov ah,02H
int 21H

jmp input
exit :
ret
MAIN ENDP
END start

64 楼

第十七题:本人没有运行过,自己拿去试试啊!
.model small
.data
STRING1 DB 'I must study hard'
STRING2 DB 'I must study hard'
X       DB 'MATCH .$'
Y       DB 'NO MATCH.$'

.stack 100H
.code
main proc far
Start:
push dx
mov ax,0
push ax

mov ax,@data
mov ds,ax
mov es,ax

lea si,STRING1
lea di,STRING2
cld

mov cx,(string2-string1)/ type STRING2
ret
End start

65 楼

谁要答案去我那里找,没有的再告诉我,我有空的时候帮大家搞点!^_^

66 楼

十七题我的版面里面有,大家可以自己去找!

67 楼

17题;此程序比较数据段和附加段的两串字符串string1和string2是否相等
;若相等,显示“string1 match string2”,否则显示“the two strings are nomatch”

; -----------定义数据段

DSEG    SEGMENT 'DATA'

      string1 db "welcome to my  school."                               ;字符串一

      match db "  match !",13,10,'$'
      nomatch db "no match!",13,10,'$'
      quit db "press any key to exit......",13,10,'$'
DSEG    ENDS


; -----------附加段

eseg   segment
       string2 db "welcome to  my  classroom."                              ;字符串二
eseg ends

;-----------定义代码段
CSEG    SEGMENT 'CODE'

;*******************************************

START   PROC    FAR
     assume cs:cseg,ds:dseg,es:eseg

;--------------保存返回DOS的地址
    PUSH    DS
    MOV     AX, 0
    PUSH    AX

;------------设置段寄存器
    MOV     AX, DSEG
    MOV     DS, AX

    mov     ax,eseg
    MOV     ES, AX


    lea si,string1
    lea di,string2
    mov cx,15
    cld
    repe cmpsb

    cmp cx,0
    jz mat
;-----------两字符串不等
    mov ah,9
    lea dx,nomatch
    int 21h
    jmp waitforexit

;-----------两字符串相等
mat:
    mov ah,9
    lea dx,match
    int 21h

;-----------按任意键退出
waitforexit:
    mov ah,9
    lea dx,quit
    int 21h

     mov ah,1
     int 21h
   

    



;----------- 返回DOS

  exit:  RET
START   ENDP

;*******************************************

CSEG    ENDS

        END    START    ; set entry point.

68 楼


12题答案是什么啊?

69 楼


看看 有答案么?

我来回复

您尚未登录,请登录后再回复。点此登录或注册