+ -
当前位置:首页 → 问答吧 → 设X、Y、Z为字节单元。如果X>=0, Z=4X-Y/16,否则,Z=X的绝对值。编程序实现。

设X、Y、Z为字节单元。如果X>=0, Z=4X-Y/16,否则,Z=X的绝对值。编程序实现。

时间:2010-11-13

来源:互联网

设X、Y、Z为字节单元。如果X>=0, Z=4X-Y/16,否则,Z=X的绝对值。编程序实现。

作者: Nicolealan   发布时间: 2010-11-13

一个简单的CMP+JAE(或JB)分支结构,内部则是MUL、DIV和SUB的组合。自己先试着完成好吧!

作者: shzhfu   发布时间: 2010-11-14

但是它Z要求是字节,若x>=0的话,做的那个算术应该出来的 是字吧。? 这是让我蛋疼的地方

作者: Nicolealan   发布时间: 2010-11-14

引用 1 楼 shzhfu 的回复:
一个简单的CMP+JAE(或JB)分支结构,内部则是MUL、DIV和SUB的组合。自己先试着完成好吧!


但是它Z要求是字节,若x>=0的话,做的那个算术应该出来的 是字吧。? 这是让我蛋疼的地方

作者: Nicolealan   发布时间: 2010-11-14

Assembly code

assume  cs:code,ds:data
data    segment
x       db      
y       db      
z       db      
data    ends
code    segment
start:
        mov ax,data
        mov ds,ax
        mov al,x
        mov bl,y
        cmp al,0
        jl a
        shl al,1
        shl al,1
        mov cl,4
        shr bl,cl
        sub al,bl
        jmp b
a:      neg al
b:      mov z,al
        mov ah,4ch
        int 21h
code    ends
end     start

作者: masmaster   发布时间: 2010-11-14

学习了,JAE(或JB)分支结构, jl a这些指令什么意思,刚学习8086汇编,
看了王爽的那本书。

作者: ccf19881030   发布时间: 2010-11-14

引用 4 楼 masmaster 的回复:
Assembly code

assume cs:code,ds:data
data segment
x db
y db
z db
data ends
code segment
start:
mov ax,data
mov ds,ax
……


你这样编 我也会 我考虑的是让用户去输入一个数。
下面是我的代码,但是有问题:
;设X、Y、Z为字节单元。如果X>=0, Z=4X-Y/16,否则,Z=X的绝对值。编程序实现。
DATAS SEGMENT
x db ?
y db ?
z db ?
str1 db 'X=$'
str2 db 'Y=$'
DATAS ENDS

STACKS SEGMENT
  ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
  ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
  MOV AX,DATAS
  MOV DS,AX
  mov dx,offset str1
  mov ah,09h
  int 21h
   
  mov ah,1
  int 21h
  sub al,30h
  mov x,al
   
  mov DL,10
  mov ah,2h
  int 21h
  mov dl,13
  int 21h

  MOV dx,OFFSET str2
  mov ah,09h
  int 21h
   
  mov ah,1
  int 21h
  sub al,30h
  mov y,al
  
  cmp x,'0'
  jnb display
  mov ax,0
  sub al,x
  mov dl,al
  mov ah,02h
  int 21h
  jmp exit  
display:
mov al,x
mov ah,4
imul ah
mov cx,ax
mov bx,16
mov al,y
cbw 
cwd
idiv bx
sbb ax,bx
mov dx,ax
mov ah,02h
exit:MOV AH,4CH
  INT 21H
CODES ENDS
  END START

作者: Nicolealan   发布时间: 2010-11-14