+ -
当前位置:首页 → 问答吧 → 大家谁知道怎么做的?帮帮我

大家谁知道怎么做的?帮帮我

时间:2010-12-16

来源:互联网

三.程序分析题:26
1.进出栈(6分)
假定(SP)=50H,(AX)=3040H,(BX)=5060H,执行下列指令后,(SP)=?,(4FH)=?,(BX)=?(6分)
PUSH AX
POP BX


2.判定下列指令是否合法,并简述原因(6分)
ADD 184CH,AX

3.分别指出下列指令中所用寻址方式: (6分)
  (1) MOV 2[SI] , 0 

4.执行下列DB、DW指令,画出存储空间图. (8分)
D1 DB 45H,0,0FFH

D2 DW 2 DUP (3),?
D3 DB ‘ABC’

三.编程题:30
1试编程:将一个字符串“HuiBian”中的小写字母变成大写。(10分)



2试编程:编写一个程序段用于计算符号函数(已知x值求y值)
x > 0, y = 1
x = 0, y = 0
x < 0, y = -1 (10分)

作者: abc8120022   发布时间: 2010-12-16

1
sp=50h bx=3040h
2
不合法
4
d1: 45h 00 ffh
d2: 00 03 00 03 00 00
d3: 41h 42h 43h

作者: leetow2003   发布时间: 2010-12-16

1试编程:将一个字符串“HuiBian”中的小写字母变成大写。(10分)
Assembly code

;子程序将小写字母变成大写字母
;入口DS:SI,指向源字符串首地址
letterc proc uses ax si 
s0:     
        mov al,[si]       
        cmp al,0          
        jz done          ;为零结束 
        cmp al,61h       ;如果≥a 
        jge s1           ;则转至s1 
        inc si           ;否则返回继续下一字符 
        jmp s0           ; 
s1:     
        cmp al,7ah       ;如果≤z 
        jle s2           ;则开始转换 
s2:     
        sub al,20h       ;减20h得到大写字母 
        mov [si],al 
        inc si 
        loop s0 
done:   
        ret
letterc endp

作者: masmaster   发布时间: 2010-12-16

(1) MOV 2[SI] , 0 ;直接寻址方式

作者: masmaster   发布时间: 2010-12-16

2试编程:编写一个程序段用于计算符号函数(已知x值求y值)
Assembly code

assume  cs:code,ds:data
data    segment
x       db      ?
y       db      ?
data    ends
code    segment
start:
        mov ax,data
        mov ds,ax
        mov al,x
        cmp al,0
        jg q1
        cmp al,0
        jl q2
        mov al,0
        mov y,al
        jmp ok
q1:
        mov al,1
        mov y,al
        jmp ok
q2:
        mov al,-1
        mov y,al
ok:
        mov ah,4ch
        int 21h
code    ends
end     start

作者: masmaster   发布时间: 2010-12-16